Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include 'protheus.ch' User Function M486OWSCOL() Local cSerieDoc := PARAMIXB[1] //Serie Local cNumDoc := PARAMIXB[2] //Número de Documento Local cCodCli := PARAMIXB[3] //Código de Cliente Local cCodLoj := PARAMIXB[4] //Código de la Tienda Local oXML := PARAMIXB[5] //Objeto del XML Local nOpc := PARAMIXB[6] //1=Nivel documento 2=Nivel detalle Local oWS := PARAMIXB[7] //Objeto de web services |
Ejemplo del Punto de Entrada:
#include 'protheus.ch'
User Function M486OWSCOL()
...
Local nItem := Val(oXML:_CBC_ID:TEXT) Local cCodProd := "" Local cSDITem := "" Local cFilSD := xFilial("SD2") If nOpc == 1 //Encabezado //F2_FILIAL+F2_DOC+F2_SERIE+F2_CLIENTE+F2_LOJA+F2_FORMUL+F2_TIPO (Índice 1) |
...
//Clase |
...
oWSCliente oWS:oWSCliente:cnombreComercial := "NOMBRE COMERCIAL PE" |
...
//Clase |
...
oWSterminosEntrega oWS:oWSterminosEntrega := Service_TerminosDeEntrega():New() |
...
oWS:oWSterminosEntrega:ccostoTransporte:= "18.00" |
...
ElseIf nOpc == 2 //Detalle del |
...
documento cCodProd := Padr(oXML:_FE_ITEM:_CAC_SELLERSITEMIDENTIFICATION:_CBC_ID:TEXT,TamSX3("D2_COD")[1],' ') |
...
cSDITem := Padl(oXML:_CBC_ID:TEXT,TamSX3("D2_ITEM")[1],'0') |
...
dbSelectArea("SD2") |
...
SD2->(dbSetOrder(3)) //D2_FILIAL + D2_DOC + D2_SERIE + D2_CLIENTE + D2_LOJA + D2_COD + D2_ITEM |
...
If SD2->(dbSeek( cFilSD + cNumDoc + cSerieDoc + cCodCli + cCodLoj + cCodProd + cSDITem)) |
...
//Clase oWSextras (Factura_Detalle) |
...
oWS:oWSextras := Service_ArrayOfExtras():New() |
...
oWSExtDet := Service_Extras():NEW() |
...
oWSExtDet:ccontrolInterno1 := "NO. |
...
SERIE" oWSExtDet:cnombre := "1" |
...
oWSExtDet:cpdf := "1" |
...
oWSExtDet:cvalor := SD2->D2_NUMSERI |
...
oWSExtDet:cxml := "1" |
...
aAdd(oWS:oWSextras:oWSextras,oWSExtDet) |
...
EndIf EndIf Return Nil |
Nota:
- En el punto de entrada de ejemplo, se llenan atributos que son opcionales a nivel documento y a nivel detalle, detall; realizando la bifurcación mediante el parámetro Opción (PARAMIXB[6]).
...
- Si no se encuentran los activados los atributos de una clase, es necesario hacerlo de la siguiente manera Service_TerminosDeEntrega():New() haciendo uso del método New.
- Se puede hacer uso de los nodos del XML estándar generado desde protheus recibido en el parámetro Objeto del XML (PARAMIXB[5]).
- Hacer uso de la variable cEspecie para definir regla de negocio por tipo de documento (NF, NDC o NCC).
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas