Histórico da Página
...
Contar con las siguiente rutina actualizada con fecha igual o posterior:
Rutina | Nombre técnico | Fecha |
---|---|---|
M486XFUNCO | Funciones genéricas para generación de XML para país Colombia | 28/04/2020 |
Compilar el punto de entrada M486OWSCOL, el cual recibo los siguientes parámetros:
...
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:oWSdetalleDeFactura:oWSFacturaDetalle[nItem]: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:oWSdetalleDeFactura:oWSFacturaDetalle[nItem]:oWSextras:oWSextras,oWSExtDet)
EndIf
EndIf
Return Nil
...
En el punto de entrada de ejemplo se llenan atributos que son opcionales a nivel documento y a nivel detalle, realizando la bifurcación mediante el parámetro Opción (PARAMIXB[6]), si se requiere ir a .
IMPORTANTE:
- 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).
Clases disponibles:
Nombre | WSLD Data |
---|---|
Anticipos | Service_ArrayOfAnticipos |
Service_Anticipos | |
Autorizado | Service_Autorizado |
Cargos/Descuentos | Service_ArrayOfCargosDescuentos |
Service_CargosDescuentos | |
Condición de Pago | Service_ArrayOfCondicionDePago |
Service_CondicionDePago | |
Documentos referenciados | Service_ArrayOfDocumentoReferenciado |
Service_DocumentoReferenciado | |
Extras | Service_ArrayOfExtras |
Service_Extras | |
Medios de Pago | Service_ArrayOfMediosDePago |
Service_MediosDePago | |
Tasa de cambio alternativa | Service_TasaDeCambioAlternativa |
Términos de entrega | Service_TerminosDeEntrega |
Entrega de mercancía | Service_Entrega |
Información adicional | Service_ArrayOfLineaInformacionAdicional |
Service_LineaInformacionAdicional | |
Detalle Factura | Service_ArrayOfFacturaDetalle |
Service_FacturaDetalle |
2.7.3 Ejemplo de utilización
...