Árvore de páginas

Versões comparadas

Chave

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

...

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.

ElementoTipoTamanhoDecimal
oViagem:carrierIdC30
oViagem:freightValueN154
oViagem:identifierC50
oViagem:regionSourceIdC70
oViagem:vehicleDescriptionC140
oViagem:vehicleId C60
oViagem:loads[1]:distanceC90
oViagem:loads[1]:freightC30
oViagem:loads[1]:loadModeC10
oViagem:loads[1]:modalC10
oViagem:loads[1]:serviceDescriptionTypeC150
oViagem:loads[1]:serviceTypeIdC10
oViagem:loads[1]:stops[1][1]:identifierC40
oViagem:loads[1]:stops[1][1]:localitySourceIdC90
oViagem:loads[1]:stops[1][1]:sequenceOnLoadC10
oViagem:loads[1]:stops[1][1]:transportZoneDescriptionC190
oViagem:loads[1]:stops[1][1]:transportZoneIdC190
oViagem:loads[1]:stops[1][1]:SUBstops[1]:arrivalTimeC290
oViagem:loads[1]:stops[1][1]:SUBstops[1]:departureTimeC290
oViagem:loads[1]:stops[1][1]:SUBstops[1]:endServiceTimeC290
oViagem:loads[1]:stops[1][1]:SUBstops[1]:identifierC40
oViagem:loads[1]:stops[1][1]:SUBstops[1]:startServiceTimeC290

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>