Histórico da Página
...
Informações | ||
---|---|---|
| ||
|
03. LOCALIZAÇÃO
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. |
cNameSpace | String | String contendo a namespace existente no XML recebido. |
05. RETORNO
Não se aplica.
...
Caso encontre o elemento do xml XML desejado na tabela abaixo, o exemplo 01 Exemplo 1 pode ser utilizado. Caso contrário será , é necessário realizar o parser do xml XML conforme exemplo o Exemplo 2.
Elemento | Tipo | Tamanho | Decimal |
---|---|---|---|
oViagem:carrierId | C | 3 | 0 |
oViagem:freightValue | N | 15 | 4 |
oViagem:identifier | C | 5 | 0 |
oViagem:regionSourceId | C | 7 | 0 |
oViagem:vehicleDescription | C | 14 | 0 |
oViagem:vehicleId | C | 6 | 0 |
oViagem:loads[1]:distance | C | 9 | 0 |
oViagem:loads[1]:freight | C | 3 | 0 |
oViagem:loads[1]:loadMode | C | 1 | 0 |
oViagem:loads[1]:modal | C | 1 | 0 |
oViagem:loads[1]:serviceDescriptionType | C | 15 | 0 |
oViagem:loads[1]:serviceTypeId | C | 1 | 0 |
oViagem:loads[1]:stops[1][1]:identifier | C | 4 | 0 |
oViagem:loads[1]:stops[1][1]:localitySourceId | C | 9 | 0 |
oViagem:loads[1]:stops[1][1]:sequenceOnLoad | C | 1 | 0 |
oViagem:loads[1]:stops[1][1]:transportZoneDescription | C | 19 | 0 |
oViagem:loads[1]:stops[1][1]:transportZoneId | C | 19 | 0 |
oViagem:loads[1]:stops[1][1]:SUBstops[1]:arrivalTime | C | 29 | 0 |
oViagem:loads[1]:stops[1][1]:SUBstops[1]:departureTime | C | 29 | 0 |
oViagem:loads[1]:stops[1][1]:SUBstops[1]:endServiceTime | C | 29 | 0 |
oViagem:loads[1]:stops[1][1]:SUBstops[1]:identifier | C | 4 | 0 |
oViagem:loads[1]:stops[1][1]:SUBstops[1]:startServiceTime | C | 29 | 0 |
08. EXEMPLO 1
Bloco de código |
---|
#INCLUDE "PROTHEUS.CH" User Function OMSCPLAV() 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 cNameSpace := PARAMIXB[5] //String com a namespace do arquivo XML Local cRegional := Padr(oViagem:regionSourceId,TamSx3("DK0_REGID")[1]) Local cViagem := Padr(oViagem:identifier,TamSx3("DK0_VIAGID")[1]) Local cDesVei := Padr(oViagem:vehicleDescription,TamSx3("DK0_DESVEI")[1]) Local nKmVei := 0 Local cError := "" Local cWarning := "" If !Empty(oViagem:loads[1]:distance) nKmVei := Val(oViagem:loads[1]:distance) EndIf DK0->(DbSetOrder(1)) If DK0->(DbSeek(xFilial('DK0')+cRegional+cViagem)) RecLock('DK0',.F.) DK0->DK0_DESVEI := cDesVei DK0->DK0_KMVEI := nKmVei DK0->(MsUnlock()) EndIf TmsLogMsg("INFO","[" + cValToChar(ThreadId()) + "-OMSCPLAV] PE OMSCPLAV Executado.") Return |
09. EXEMPLO 2
Bloco de código |
---|
#include "protheus.ch" #include "parmtype.ch" #INCLUDE "TOTVS.CH" User Function OMSCPLAV() 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 cNameSpace := PARAMIXB[5] //String com a namespace do arquivo XML Local cRegional := AvKey(oViagem:regionSourceId, "DK0_REGID") Local cViagem := AvKey(oViagem:identifier, "DK0_VIAGID") Local nVlrFret := 0 Local cTrsHub := "" Local cTrsNme := "" Local cTrnPrim := "" Local cTpVcPrm := "" Local oSubStop Local cError := "" Local cWarning := "" Local oXml := NIL nVlrFret := oViagem:freightValue cTrnPrim := oViagem:carrierId cTpVcPrm := oViagem:vehicleId oXml := XmlParser( cConteudo, "_", @cError, @cWarning ) If (oXml != NIL ) IF ValType(XmlChildEx(oXml&("OXML:_SOAP_ENVELOPE:_SOAP_BODY:_NS2" + cNameSpace + "_PUBLISHRELEASEDTRIP:_TRIPRELEASEREQUESTS:_TRIPRELEASEREQUEST[1]:_LOADS:_LOAD:_STOPS:_STOP[1]:_SUBSTOPS:_SUBSTOP:_LOADEDSHIPMENTUNITS:_SHIPMENTUNIT:_DELIVERYUNITLIST:_DELIVERYUNIT","_ATTRIBUTES"))) <> "U" cTrsNme := &("OXML:_SOAP_ENVELOPE:_SOAP_BODY:_NS2" + cNameSpace + "_PUBLISHRELEASEDTRIP:_TRIPRELEASEREQUESTS:_TRIPRELEASEREQUEST[1]:_LOADS:_LOAD:_STOPS:_STOP[1]:_SUBSTOPS:_SUBSTOP:_LOADEDSHIPMENTUNITS:_SHIPMENTUNIT:_DELIVERYUNITLIST:_DELIVERYUNIT:_ATTRIBUTES:_ATTRIBUTE:_NAME:TEXT") cTrsHub := &("OXML:_SOAP_ENVELOPE:_SOAP_BODY:_NS2" + cNameSpace + "_PUBLISHRELEASEDTRIP:_TRIPRELEASEREQUESTS:_TRIPRELEASEREQUEST[1]:_LOADS:_LOAD:_STOPS:_STOP[1]:_SUBSTOPS:_SUBSTOP:_LOADEDSHIPMENTUNITS:_SHIPMENTUNIT:_DELIVERYUNITLIST:_DELIVERYUNIT:_ATTRIBUTES:_ATTRIBUTE:_VALUE:TEXT") EndIF else OsLogCpl("PE OMSCPLAV -> Falha ao gerar Objeto XML : "+cError+" / "+cWarning,"INFO") EndIF DK0->(DbSetOrder(1)) If DK0->(DbSeek(FwXFilial("DK0") + cRegional + cViagem)) RecLock("DK0", .F.) DK0->DK0_XFRETE := nVlrFret DK0->DK0_XTRHB := cTrsHub DK0->(MsUnlock()) EndIf Return Nil |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas