Histórico da Página
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.
o Cockpit Logístico. 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 Cockpit Logísticoo 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 Cockpit Logísticoo 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 ou superiores.
07.
...
language | cpp |
---|---|
title | Exemplo |
linenumbers | true |
collapse | true |
...
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
------
Templatedocumentos |
---|
HTML |
---|
<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> |