Duda campo en plantilla para Ordenes de Venta DTW

Hola, estoy haciendo una plantilla para subir las ordenes de venta de la empresa por Data Transfer Workbench, he encontrado que algunos campos no están bien mapeados en las plantillas ya existentes sin embargo hasta ahora he logrado cuadrar casi todo a excepción de uno, cuando habilito visualizar la información de sistema para ver que campo y a que tabla pertenece encuentro que es un campo llamado LegalText en la tabla RDR1, sin embargo al abrir la plantilla creada para la tabla RDR1 - Document Lines no logro encontrar el campo LegalText y si lo agrego manualmente (como he hecho con otros) el DTW no me lo relaciona con nada y no encuentra con destino relacionarlo para que se cargue la información, el campo que quiero llenar en mi orden de venta dentro de SAP se llama “Nota detalle”, ya revise entre los campos definidos por el usuario y tampoco encuentro nada.

Alguna idea?

De antemano gracias

Que version de SAP y PL tienes instalado?

Si no estoy mal, es este.
image

2 Me gusta

Gracias por la pronta respuesta, es la 9.2 9.20.190 PL 09, esa que muestras yo la tengo como ItemDetails en ambos campos y me llena el campo Detalles de articulo, probé si con la combinación ItemDetails Text cambia algo pero no

@JosanRovira no me quise quedar con la duda y tuve que consultar el SDK, y creo la causa por la que no exista ese campo en el template es porque el campo LegalText no esta disponible a nivel API. Por lo que lo unico que queda es alimentarlo manualmente.

1 me gusta

Deberías crear el template desde el DTW recogerá todos los campos de tu bbdd incluidos los de usuario.
Busca en el foro que ya está explicado como crear el template desde el DTW

1 me gusta

@juliancab bueno pues ni modo, vere que tan util es para la persona que hace las OV subir todo lo demas por plantilla y este campo manualmente, me decepciona un poco que pasen estas cosas con SAP.

@meqs eso exactamente hice y efectivamente ese LegalText no aparece, lo curioso del asunto es que hay otro campo que tampoco se genera en esa plantilla, ese campo se llama FreeTxt, al igual que como lo estoy intentando con LegalText, agregue manualmente FreeTxt a mi plantilla, tampoco subió, pero busque entre las destinos de datos en DTW y encontré uno que se llama FreeText, cambie en mi plantilla FreeTxt por FreeText y voila, cargo la información perfectamente y esperaba poder hacer lo mismo con LegalText, pensé que el campo destino en DTW tendría algún nombre distinto como en el caso anterior, como le dije a Julian, ni modo, son esos pequeños detalles que hacen que las cosas no funcionen como deberían.

1 me gusta

Mientras no este en el API, no hay forma de hacerlo con DTW, ya que la herramienta funciona con el DI API. Es por eso la razón que te di.

De acuerdo contigo que aveces la herramienta nos deja a medias jajajaja pero alguna razon abra.

1 me gusta

Buenos días @JosanRovira

No se si ya resolviste el problema, sin embargo, tengo algunas observaciones/dudas:
1.- Tienes información que cargar en ese campo ?, o simplemente intentas mapearlo poque lo contiene la plantilla.
1.1 Si NO tienes información que cargar, simplemente elimínalo de la plantilla.
1.2 Si en realidad SI tienes información que cargar, la persona que llenó la plantilla, debe saber que información está plasmando en cada campo y en que parte del documento la requiere.
2.- Existe la posibilidad que se hayan equivocado de campo al plasmar la información.

NOTA 1: Toma en cuenta que el nombre que aparece en el cliente de SAP al activar la opción “Información del sistema”, no siempre es el mismo nombre que aparece en el DTW.

NOTA 2: No todos los campos que contienen las tablas de SAP, aplican para tu región

Saludos
SAP B1, v9.2 PL03
México

Se me pasó plasmar un comentario más al respecto, cuando pasa esto, la primer pregunta que me hago es… ¿ Si capturara de forma manual este documento, donde plasmaría la información de este campo ? y posteriormente a la respuesta, deberás intentar relacionar campo tabla SAP, campo DTW, y de ser necesario crear un documento con este dato en una BD de pruebas.

Saludos
SAP B1, v9.2 PL03
México

2 cosas adicionales que puedes hacer:

  1. Busca en el generador de consultas, en la tabla que quieres, si aparece… (y con que nombre aparece los nombres no siempre coinciden el 100% como por ejemplo el FederalText que es el ID, tiene otro nombre en la ORDR)

  2. Crea un documento y en ese campo pon un identificador que puedas localizar rápidamente (en una BD de pruebas por favor), por ejemplo colocarle “999999999999X” y guardalo, y luego por SQL haz un Select a la tabla donde tu número de documento coincida… lo lleva a un excel, y le haces la busqueda del “999999999999X” para ver el nombre del campo correspondiente.

Con la segunda opción me he encontrado que aunque es un campo que está en el detalle, en realidad no se guarda en la RDR1, sino que se llega a guardar en la 2, o 3, o 4… ahí debes de revisar porque puede ser una inforamción que se guarad en alguna de las otras tablas, y no precisamente en la RDR1.

1 me gusta

Hola @chavalito, gracias por tu respuesta, aun no he resuelto este asunto y mas bien ya lo había tirado por la borda después de la respuesta de @juliancab, ademas nuestro proveedor de SAP me dio la misma respuesta, solo que mucho menos detallada, solo se limitaron a decir no se puede y como no me convenció acudí a este foro, pues yo no me conformo con ese tipo de respuestas.

  1. R si se usa ese campo, hasta ahora las ordenes de venta se han cargado manualmente y queremos cambiar eso

NOTA 1 R. Precisamente hacia allá apunta mi consulta, al no encontrar el campo LegalText en DTW imagine que estaría mapeado con otro nombre y básicamente eso es lo que esperaba que aquí me respondieran, mientras esperaba respuesta seguí haciendo mis propias investigaciones, me concentre en el tamaño del campo y probé, si recuerdo bien, en cada uno de los campos que tienen ese tamaño (256 caracteres) y ninguno cargo la información al campo en cuestión.

Efectimasnete todo este trabajo se ha hecho en una base de dates de pruebas que es una copia fiel de la base productiva.

La informacion manualmente se captura en un campo llamado Nota detalle, eso de relacionar el campo tabla SAP con el campo DTW es precisamente lo que intento hacer, como ya comente antes, lo mismo me paso con el primer campo que se llama Detalle en SAP, FreeTxt en la tabla y FreeText en DTW, claro, por la similitud del nombre entre la tabla y DTW ese campo sumamente fácil de relacionar, si genero la tabla desde el generador de plantillas de DTW no aparecen ni FreeText ni LegalText y ahí es donde reside mi esperanza de poder solucionar esto

Lo voy a probar mas tarde, espero tener tiempo hoy mismo, solo me surge una duda, nuestras bases de datos están en HANA y no en SQL, debería servir igual ese método?

Según yo… en Hana puedes igual buscar los resultados como si fuera un SQL con las consultas correctas…

Claro según yo. porque igual y sigue siendo una base de datos. Lo que no se es si las bases de las consultas se mantengan igual. pero con los nombres de las tablas que me estas dando deduzco que el nombre de las tablas si no cambian.

Buenos días @JosanRovira

Una disculpa de antemano, honestamente no conozco HANA, así que no sabría las diferencias con respecto a SQL.

Por otro lado, realicé algunas pruebas con DI API y no logré plasmar información a ese campo, que dicho sea de paso, su nombre si es “LegalText”, y enseguida te comento el por qué digo que su nombre es ese.

Resulta que al estar realizando pruebas mediante DI API, que en teoría DTW funciona con DI API, realicé las siguientes pruebas:

1.- Consulté un documento que cree de forma manual y que tuviera alguna información en el campo “LegalText”, y lo exporté a un archivo XML mediante el método de DI API “SaveXML”, y al abrir dicho XML, efectivamente SI contenía el campo “LegalText” con su respectivo valor asignado previamente de forma manual; que por cierto, al exportarlo de esta forma muestra todos los campos habidos y por haber, jajajaja.

2.- Cree de forma manual un archivo XML, donde incluí el campo “LegalText” con un X valor, y posteriormente lo cree mediante DI API con ese XML creado en disco, y efectivamente me lo cargó correctamente en SAP mostrando el valor asignado.

Código de DIAPI:

SAPbobsCOM.Documents PedidoDeVentas_Carga = ((SAPbobsCOM.Documents)(oEmpresa.GetBusinessObjectFromXML(@"C:\System\PedidoDeVentas_CargaMedianteXML.xml", 0)));
int resultado_0 = PedidoDeVentas_Carga.Add();
if (resultado_0 != 0) {
    //int errNumero = 0; string errMensaje = "";
    oEmpresa.GetLastError(out int errNumero, out string errMensaje);
    if (oEmpresa.InTransaction == true) {
        oEmpresa.EndTransaction(BoWfTransOpt.wf_RollBack);
    }        // si la transacción sigue abierta, la cierra deshaciendo todos los cambios realizados hasta el momento
    throw new Exception("Ha ocurrido el siguiente error, al intentar crear la Oferta de Ventas, revise por favor ...\n\n" + errMensaje);
}

Contenido Ejemplo XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<BOM>
<BO>
<AdmInfo>
<Object>17</Object>
</AdmInfo>
<ORDR>
<row>
<DocType>I</DocType>
<ObjType>17</ObjType>
<DocDate>20180522</DocDate>
<DocDueDate>20180522</DocDueDate>
<CardCode>CXXXXXX</CardCode>
<TaxDate>20180522</TaxDate>
<Comments>Concepto del documento</Comments>
</row>
</ORDR>
<RDR1>
<row>
<ItemCode>AXXXXXXX</ItemCode>
<Quantity>12.000000</Quantity>
<Price>5.000000</Price>
<TaxCode>IVAT1601</TaxCode>
<LegalText>Dato del campo LegalText</LegalText>
</row>
</RDR1>
</BO>
</BOM>

Imagen, resultado en SAP:
imagen

CONCLUSIÓN:
AL PARECER LOS OBJETOS DE DI API, NO CUENTAN CON ESE CAMPO, AL MENOS EN LA VERSIÓN DONDE YO ESTOY TRABAJANDO (v9.2 PL03), RAZÓN POR LA CUAL DTW TAMPOCO PUEDE VISUALIZARLO, YA QUE DTW TRABAJA CON LOS OBJETOS (DLL) DE DI API, SIN EMBARGO, MEDIANTE LA OPCIÓN DE CARGA CON ARCHIVO XML, SI ES POSIBLE CARGARLO, ENTIENDO @JosanRovira QUE NO ES LO QUE NECESITAS, SIN EMBARGO, QUISE DAR UN ARGUMENTO VALIDO, AL MENOS BASADO EN PRUEBAS QUE REALICÉ.

Mucho rollo, lo consideré necesario !!!

Saludos
SAP B1, v9.2 PL03
México

2 Me gusta

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.