Árvore de páginas

Versões comparadas

Chave

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

...

Contar con las siguiente rutina actualizada con fecha igual o posterior:

RutinaNombre técnicoFecha
M486XFUNCOFunciones genéricas para generación de XML para país Colombia28/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:

NombreWSLD Data
AnticiposService_ArrayOfAnticipos

Service_Anticipos
AutorizadoService_Autorizado
Cargos/DescuentosService_ArrayOfCargosDescuentos

Service_CargosDescuentos
Condición de PagoService_ArrayOfCondicionDePago

Service_CondicionDePago
Documentos referenciadosService_ArrayOfDocumentoReferenciado

Service_DocumentoReferenciado
ExtrasService_ArrayOfExtras

Service_Extras
Medios de PagoService_ArrayOfMediosDePago

Service_MediosDePago
Tasa de cambio alternativaService_TasaDeCambioAlternativa
Términos de entregaService_TerminosDeEntrega
Entrega de mercancíaService_Entrega
Información adicionalService_ArrayOfLineaInformacionAdicional

Service_LineaInformacionAdicional
Detalle FacturaService_ArrayOfFacturaDetalle

Service_FacturaDetalle


2.7.3 Ejemplo de utilización 

...