01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:SIGAOMS - Gestão de Distribuição
Função:OMSXCPL - Regras de Integração OMS x TOL
País:Todos Países
Ticket:-
Requisito/Story/Issue (informe o requisito relacionado) :-


02. DESCRIÇÃO

Este Ponto de Entrada pode ser utilizado para qualquer mensagem de integração com o TOTVS Otimização Logística.

Portanto, pode ser utilizado por customizações que envolvam envio de cadastros, ou então, envio de pedidos de venda, a diferenciação pode ser realizada pelo  parâmetro cTabela, que será preenchida conforme o tipo de mensagem que está sendo enviada.

O objetivo é permitir a substituição do "corpo" do XML de envio, de qualquer registro de inclusão ou alteração que se queira integrar com o TOTVS Otimização Logística.

03. LOCALIZAÇÃO

Localizado no método de envio da rotina OMSXCPLWS, antes da integração efetiva do XML com o TOTVS Otimização Logística.

04. PARÂMETROS

Este Ponto de Entrada recebe como parâmetro a string com o conteúdo do corpo (body) do XML e a string com a tabela que será enviada.

05. RETORNO

String com o novo conteúdo do corpo do XML de envio.

06. VERSÕES

Protheus 12.

07. OBSERVAÇÃO

Não se aplica.

08. EXEMPLO

------

#INCLUDE "PROTHEUS.CH"

User Function OMSXCPL0 ()
Local cBodyXML := PARAMIXB[1]
Local cTabela := PARAMIXB[2]
Local nPosInicio := 0
Local nPosFim := 0
Local nQtdCaract := 0
Local cTag := "" Local cNovaTag := ""

If cTabela == "SB1"
     nPosInicio := At( "<shape>", cBodyXML) //Posição início da tag
     nPosFim := At( "</shape>", cBodyXML) //Posição fim da tag
     nQtdCaract := (nPosFim - nPosInicio) + Len("</shape>") //Calcula quantidade de caracteres que a tag completa ocupa
     cTag := SubStr(cBodyXML,nPosInicio,nQtdCaract) //Retorna a string contendo a tag que será substituída, exemplo: "<shape>0</shape>"
     cNovaTag := "<shape>1</shape>" //Nova tag para a substituição
     cBodyXML := StrTran(cBodyXML,cTag,cNovaTag) //Efetiva a substituição da tag no XML
EndIf

Return cBodyXML

------



<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>