Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


01. DADOS GERAIS

Produto:

Solucoes_totvs
SolucaoTOTVS OMS

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoLogística

Módulo:SIGAOMS - Gestão de Distribuição
Função:OMSXCPL - Regras de Integração OMS x TOL
País:
Brasil
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.

...

languagecpp
titleExemplo
linenumberstrue
collapsetrue

...

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>