Sample code for 30+ languages & platforms
PowerBuilder

Insert Signed XML as Base64 Data into Invoice XML

See more TicketBAI Examples

Demonstrates how to insert previously signed XML into another XML as base64 data.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Sb1
oleobject loo_Sb2
oleobject loo_Xml

li_Success = 0

// We wish to create the following XML:

// <?xml version="1.0" encoding="UTF-8" standalone="no"?><lrpficfcsgap:LROEPF140IngresosConFacturaConSGAltaPeticion xmlns:lrpficfcsgap="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_2.xsd">
// 	<Cabecera>
// 		<Modelo>140</Modelo>
// 		<Capitulo>1</Capitulo>
// 		<Subcapitulo>1.1</Subcapitulo>
// 		<Operacion>A00</Operacion>
// 		<Version>1.0</Version>
// 		<Ejercicio>2022</Ejercicio>
// 		<ObligadoTributario>
// 			<NIF>79732487C</NIF>
// 			<ApellidosNombreRazonSocial>ARRIOLA LEJARDI ANE</ApellidosNombreRazonSocial>
// 		</ObligadoTributario>
// 	</Cabecera>
// 	<Ingresos>		
// 		<Ingreso>
// 			<TicketBai>PD94bWw...ldEJhaT4=</TicketBai>
// 		<Renta>
// 			<DetalleRenta>
// 				<Epigrafe>197330</Epigrafe>
// 			</DetalleRenta>
// 		</Renta>
// 	</Ingreso>
// 		<Ingreso>
// 			<TicketBai>PD94bWw...rZXRCYWk+</TicketBai>
// 		<Renta>
// 			<DetalleRenta>
// 				<Epigrafe>197330</Epigrafe>
// 				<IngresoAComputarIRPFDiferenteBaseImpoIVA>S</IngresoAComputarIRPFDiferenteBaseImpoIVA>
// 				<ImporteIngresoIRPF>400.00</ImporteIngresoIRPF>
// 			</DetalleRenta>
// 		</Renta>
// 	</Ingreso>	
// 	</Ingresos>
// </lrpficfcsgap:LROEPF140IngresosConFacturaConSGAltaPeticion>

// Use this online tool to generate code from sample XML: 
// Generate Code to Create XML

// First get the signed XML created in these other examples
// TicketBAI Sign XML Example 1
loo_Sb1 = create oleobject
li_rc = loo_Sb1.ConnectToNewObject("Chilkat.StringBuilder")
if li_rc < 0 then
    destroy loo_Sb1
    MessageBox("Error","Connecting to COM object failed")
    return
end if
li_Success = loo_Sb1.LoadFile("qa_output/signedXml_1.xml","utf-8")

// TicketBAI Sign XML Example 2
loo_Sb2 = create oleobject
li_rc = loo_Sb2.ConnectToNewObject("Chilkat.StringBuilder")

li_Success = loo_Sb2.LoadFile("qa_output/signedXml_2.xml","utf-8")

loo_Xml = create oleobject
li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml")

loo_Xml.Tag = "lrpficfcsgap:LROEPF140IngresosConFacturaConSGAltaPeticion"
loo_Xml.AddAttribute("xmlns:lrpficfcsgap","https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_2.xsd")
loo_Xml.UpdateChildContent("Cabecera|Modelo","140")
loo_Xml.UpdateChildContent("Cabecera|Capitulo","1")
loo_Xml.UpdateChildContent("Cabecera|Subcapitulo","1.1")
loo_Xml.UpdateChildContent("Cabecera|Operacion","A00")
loo_Xml.UpdateChildContent("Cabecera|Version","1.0")
loo_Xml.UpdateChildContent("Cabecera|Ejercicio","2022")
loo_Xml.UpdateChildContent("Cabecera|ObligadoTributario|NIF","79732487C")
loo_Xml.UpdateChildContent("Cabecera|ObligadoTributario|ApellidosNombreRazonSocial","ARRIOLA LEJARDI ANE")
loo_Xml.UpdateChildContent("Ingresos|Ingreso|TicketBai",loo_Sb1.GetEncoded("base64","utf-8"))
loo_Xml.UpdateChildContent("Ingresos|Ingreso|Renta|DetalleRenta|Epigrafe","197330")
loo_Xml.UpdateChildContent("Ingresos|Ingreso[1]|TicketBai",loo_Sb2.GetEncoded("base64","utf-8"))
loo_Xml.UpdateChildContent("Ingresos|Ingreso[1]|Renta|DetalleRenta|Epigrafe","197330")
loo_Xml.UpdateChildContent("Ingresos|Ingreso[1]|Renta|DetalleRenta|IngresoAComputarIRPFDiferenteBaseImpoIVA","S")
loo_Xml.UpdateChildContent("Ingresos|Ingreso[1]|Renta|DetalleRenta|ImporteIngresoIRPF","400.00")

Write-Debug loo_Xml.GetXml()

li_Success = loo_Xml.SaveXml("qa_output/ticketBAI_invoice.xml")


destroy loo_Sb1
destroy loo_Sb2
destroy loo_Xml