Produto: | |
---|---|
Linha de Produto: | |
Segmento: | |
Módulo: | SIGAOMS - Gestão de Distribuição |
Função: | OMSXCPLA - Recebimento de Viagem |
País: | Todos Países |
Ticket: | - |
Requisito/Story/Issue (informe o requisito relacionado) : | - |
Este Ponto de Entrada permite a manipulação das tabelas responsáveis por armazenar a viagem recebida pelo TOTVS Otimização Logística, possibilitando assim a gravação de outras informações presentes no XML.
Exemplo
|
Localizado na função ProcViagem da rotina OMSXCPLA, logo após a gravação das tabelas de Viagem (DK0 e DK1).
Nome | Tipo | Descrição |
---|---|---|
oViagem | Objeto | Objeto contendo todos os atributos do XML referentes ao cabeçalho da viagem TOL. |
aStops | Array de Objetos | Array de objetos contendo todos os atributos do XML referentes às paradas da viagem TOL, mais especificamente os atributos da tag stops. |
aSubStops | Array de Objetos | Array de objetos contendo todos os atributos do XML referentes as subparadas da viagem TOL, mais especificamente os atributos da tag subStop. |
cConteudo | String | String contendo todo o conteúdo do XML recebido, permitindo assim acessar qualquer tag da Viagem recebida. |
Este Ponto de Entrada não possui retorno.
12.1.17 ou superiores
Todos os parâmetros são recebidos na User Function via PARAMIXB, conforme consta em Execblock / Customização.
#INCLUDE "PROTHEUS.CH"
User Function OMSCPLAV()
Local oSubStop := Nil
Local oViagem := PARAMIXB[1] //Objeto com todos os atributos da viagem
Local aStops := PARAMIXB[2] //Array com os objetos de todas as paradas, tag "stop"
Local aSubStops := PARAMIXB[3] //Array com os objetos de todas as sub-paradas, tag "subStop"
Local cConteudo := PARAMIXB[4] //String com todo o conteúdo do XML
Local cRegional := Padr(oViagem:regionSourceId,TamSx3("DK0_REGID")[1])
Local cViagem := Padr(oViagem:identifier,TamSx3("DK0_VIAGID")[1])
Local cDateStart := ""
//primeiro subStop
oSubStop := aSubStops[1]
cDateStart := SubStr(oSubStop:startServiceTime,9,2)+'/'+;
SubStr(oSubStop:startServiceTime,6,2)+'/'+;
SubStr(oSubStop:startServiceTime,1,4) DK0->(DbSetOrder(1))
If DK0→(DbSeek(xFilial('DK0')+cRegional+cViagem))
RecLock('DK0',.F.)
DK0->DK0_XCPO := cDateStart //Campo customizado
DK0→(MsUnlock())
EndIf
//A função TmsLogMsg exibe mensagens no corpo do arquivo console.log
If Empty(cConteudo)
TmsLogMsg("WARN","[" + cValToChar(ThreadId()) + "-OMSCPLAV] Variável 'cConteudo' está vazia.")
else
TmsLogMsg("WARN","[" + cValToChar(ThreadId()) + "-OMSCPLAV] Variável 'cConteudo' está preenchida com " + cValToChar(Len(cConteudo)) + " bytes.")
oXml := XmlParser(cConteudo, "NS1", @cError, @cWarning )
cViagem :=
oXml:_SOAP_ENVELOPE:_SOAP_BODY:_NS2_PUBLISHRELEASEDTRIP:_TRIPRELEASEREQUESTS:_TRIPRELEASEREQUEST:_IDENTIFIER:TEXT
TmsLogMsg("WARN","[" + cValToChar(ThreadId()) + "-OMSCPLAV] Viagem " + cViagem + " recebida com sucesso.")
Endif
Return
<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> |