LYWS: Ejemplos de invocación retrievePdfFromDocument y generatePromotionCode

Last modified by admin on 2026/07/18 17:35

LYWS: Ejemplos de invocación a operaciones retrievePdfFromDocument y generatePromotionCode

Indice

Prerrequisitos

IMPORTANTE: Para poder invocar a estas operaciones, se requiere al menos las siguientes revisiones:

  • LY CORE r2607
  • LYWS r65

Operación retrievePdfFromDocument

Descripción de la operación

Recupera en formato PDF la impresion de un documento (factura, pedido, remito, RC) tal como se visualizaría en el visor de documentos de Libertya al imprimirlo.

Se utiliza la map de mainTable para especificar los argumentos del proceso, a fin de lograr versatilidad en caso de tener que incorporar nuevos parametros. Para este caso en particular se deben especificar los siguientes:

  • tableName: nombre de la tabla sobre la cual recuperar la impresion. Opciones validas: C_Invoice (Factura), C_Order (Pedido), M_InOut (Remito), C_AllocationHdr (Recibo de Cliente)
  • recordID: identificador del registro sobre el cual recuperar la impresion

La operación retorna un string codificado en Base64 con la informacion del documento en la key con nombre PDF del resultBean.

Ejemplo de invocación usando LYWS

// Conexión al WS
LibertyaWSServiceLocator locator = new LibertyaWSServiceLocator();
// URL del servicio
locator.setLibertyaWSEndpointAddress(“http://localhost:8080/axis/services/LibertyaWS”);
// Recuperar el servicio
ws.libertya.org.LibertyaWS lyws = locator.getLibertyaWS();

// Datos de acceso (usuario, password, compañía, organización)
ParameterBean data = new ParameterBean(“AdminLibertya”, “AdminLibertya”, 1010016, 1010053);
// Tabla sobre la cual recuperar el documento
data.addColumnToMainTable(“tableName”, “C_Invoice”);
// Identificador del registro a recuperar
data.addColumnToMainTable(“recordID”, “1021812”);

// Invocacion a operacion y procesamiento del resultado
ResultBean result = lyws.processRetrievePdfFromDocument(data);
if (!result.isError()) {
// Recupero el documento bajo la key PDF y decodifico
byte[] pdf = Base64.decodeBase64(result.getMainResult().get(“PDF”));
FileOutputStream fos = new FileOutputStream(“/tmp/documentoObtenido.pdf”);
fos.write(pdf);
fos.close();
} else
System.out.println(result.getErrorMsg());

Ejemplo de invocación usando LYWSE

// Conexión al WS
LibertyaWSEServiceLocator locator = new LibertyaWSEServiceLocator();
// URL del servicio
locator.setLibertyaWSEEndpointAddress(http://localhost:8080/axis/services/LibertyaWSE");
// Recuperar el servicio
wse.libertya.org.LibertyaWSE lywse = locator.getLibertyaWSE();

// Datos de acceso (usuario, password, compañía, organización)
Login aLogin = new Login();
aLogin.setUserName(“AdminLibertya”);
aLogin.setPassword(“AdminLibertya”);
aLogin.setClientID(1010016);
aLogin.setOrgID(1010053);

// Tabla sobre la cual recuperar el documento
SimpleMap tableName = new SimpleMap();
tableName.setKey(“tableName”);
tableName.setValue(“C_Invoice”);
// Identificador del registro a recuperar
SimpleMap documentID = new SimpleMap();
documentID.setKey(“recordID”);
documentID.setValue(“1021812”);
// Cargar nomina de argumentos
SimpleMap[] params = new SimpleMap[2];
params[0] = tableName;
params[1] = documentID;

// Invocacion a operacion y procesamiento del resultado
SimpleResult result = lywse.processRetrievePdfFromDocument(aLogin, params);
if (!result.isError()) {
// Recupero el documento bajo el unico map recibido (cuyo key es PDF)
byte[] pdf = Base64.decodeBase64(result.getResultValues()[0].getValue());
FileOutputStream fos = new FileOutputStream(“/tmp/documento.pdf”);
fos.write(pdf);
fos.close();
} else
System.out.println(result.getErrorMsg());

Operación generatePromotionCode

Descripción de la operación

Esta operación recibe dos argumentos (además de los de acceso):

  • invoiceDoc: numero de documento de la factura original con la que se generará el cupon promocional
  • customerDNI: numero de documento del cliente indicado en la factura original

Retorna la información del cupón generado bajo las siguientes claves:

  • Code: Codigo de cupon
  • Promotion: Nombre de la promocion
  • ValidFrom: Valido desde
  • ValidTo: Valido hasta (si fue definido)
  • Batch: Numero de lote

Ejemplo de invocación usando LYWS

// Conexión al WS
LibertyaWSServiceLocator locator = new LibertyaWSServiceLocator();
// URL del servicio
locator.setLibertyaWSEndpointAddress(“http://localhost:8080/axis/services/LibertyaWS”);
// Recuperar el servicio
ws.libertya.org.LibertyaWS lyws = locator.getLibertyaWS();

// Invocacion a operacion y procesamiento del resultado
ParameterBean data = new ParameterBean(“AdminLibertya”, “AdminLibertya”, 1010016, 1010053);
data.addColumnToMainTable(“invoiceDoc”, “B022300419521”);
data.addColumnToMainTable(“customerDNI”, “31697955”);
ResultBean result = lyws.processGeneratePromotionCode(data);
if (!result.isError()) {
System.out.println(result.getMainResult().get(“Code”));
System.out.println(result.getMainResult().get(“Promotion”));
System.out.println(result.getMainResult().get(“ValidFrom”));
}

Ejemplo de invocación usando LYWSE

// Conexión al WS
LibertyaWSEServiceLocator locator = new LibertyaWSEServiceLocator();
// URL del servicio
locator.setLibertyaWSEEndpointAddress(http://localhost:8080/axis/services/LibertyaWSE");
// Recuperar el servicio
wse.libertya.org.LibertyaWSE lywse = locator.getLibertyaWSE();

// Datos de acceso (usuario, password, compañía, organización)
Login aLogin = new Login();
aLogin.setUserName(“AdminLibertya”);
aLogin.setPassword(“AdminLibertya”);
aLogin.setClientID(1010016);
aLogin.setOrgID(1010053);

// Numero de documento de la factura original
SimpleMap invoiceDoc = new SimpleMap();
invoiceDoc.setKey(“invoiceDoc”);
invoiceDoc.setValue(“B022300419521”);
// DNI del cliente de la factura original
SimpleMap customerDNI = new SimpleMap();
customerDNI.setKey(“customerDNI”);
customerDNI.setValue(“31697955”);
// Cargar nomina de argumentos
SimpleMap[] params = new SimpleMap[2];
params[0] = invoiceDoc;
params[1] = customerDNI;

// Invocacion a operacion y procesamiento del resultado
SimpleResult result = lywse.processGeneratePromotionCode(aLogin, params);
if (result.isError()) {
System.out.println(result.getErrorMsg());
} else {
// Para cada Key, imprimo además su valor
for (SimpleMap aMap : result.getResultValues()) {
System.out.println(aMap.getKey() + “:” + aMap.getValue());
}
}