Árvore de páginas

Versões comparadas

Chave

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

...

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

...