Histórico da Página
...
Todos os parâmetros são recebidos na User Function via PARAMIXB, conforme consta em Execblock / Customização.
Caso encontre o elemento do xml desejado na tabela abaixo, o exemplo 01 pode ser utilizado. Caso contrário será necessário realizar o parser do xml conforme 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 cRegional := Padr(oViagem:regionSourceId,TamSx3("DK0_REGID")[1]) |
...
Local cViagem := Padr(oViagem:identifier,TamSx3("DK0_VIAGID")[1]) |
...
//primeiro subStop
oSubStop := aSubStops[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 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:_SOAP_ENVELOPE:_SOAP_BODY:_NS2_PUBLISHRELEASEDTRIP:_TRIPRELEASEREQUESTS:_TRIPRELEASEREQUEST[1]:_LOADS:_LOAD:_STOPS:_STOP[1]:_SUBSTOPS:_SUBSTOP:_LOADEDSHIPMENTUNITS:_SHIPMENTUNIT:_DELIVERYUNITLIST:_DELIVERYUNIT,"_ATTRIBUTES")) <> "U"
cTrsNme := OXML:_SOAP_ENVELOPE:_SOAP_BODY:_NS2_PUBLISHRELEASEDTRIP:_TRIPRELEASEREQUESTS:_TRIPRELEASEREQUEST[1]:_LOADS:_LOAD:_STOPS:_STOP[1]:_SUBSTOPS:_SUBSTOP:_LOADEDSHIPMENTUNITS:_SHIPMENTUNIT:_DELIVERYUNITLIST:_DELIVERYUNIT:_ATTRIBUTES:_ATTRIBUTE:_NAME:TEXT
cTrsHub := OXML |
...
oXml := XmlParser(cConteudo, "NS1", @cError, @cWarning )
cViagem :=
...
:_SOAP_ENVELOPE:_SOAP_BODY:_NS2_PUBLISHRELEASEDTRIP:_TRIPRELEASEREQUESTS:_TRIPRELEASEREQUEST |
...
Return
...
[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 |
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> |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas