Insert con di api sap b1

Hola a todos, estoy queriendo aprender a desarrollar con el DIAPI de SAP B1. ¿Cómo puedo hacer un INSERT?

Tengo el siguiente código de prueba, más o menos eso es lo que he encontrado en google.

try {
                ocompany.Disconnect();
                ocompany.Server = "SERVERSAPBO";
                ocompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2012;
                ocompany.UseTrusted = false;
                ocompany.DbUserName = "sa";
                ocompany.DbPassword = "SAPB1Admin@@";
                ocompany.CompanyDB = "Elsabor";
                ocompany.UserName = "manager";
                ocompany.Password = "170205";
                ocompany.LicenseServer = "SERVERSAPBO:30000";

                int ret = ocompany.Connect();
                string errMsg = ocompany.GetLastErrorDescription();
                int ErrNo = ocompany.GetLastErrorCode();
                if (ErrNo != 0) {
                    MessageBox.Show(errMsg);
                } else {
                    var table = ocompany.UserTables.Item("\"@FechaCorte\"");
                    table.UserFields.Fields.Item("Fecha").Value = "2021-10-01";
                    if (table.Add() != 0) {
                        int code = -1;
                        string msg = "";
                        ocompany.GetLastError(out code, out msg);
                    }
                }
            } catch (Exception errMsg) {
                MessageBox.Show(errMsg.ToString());
            }

Buenas, estimado escribió su post en el foro incorrecto.

De todas maneras si lo que trata de hacer es un Insert vía SQL Command eso no está permitido, sin embargo si quiere correr el riesgo por su propia cuenta, debe usar el objeto RecordSet

var rs = ocompany.GetBusinessObject(BoObjectTypes.BoRecordset) as SAPbobsCOM.Recordset;
rs.DoQuuery("Mi comando SQL");

Atte.

Ya le distes armar para hacer lo que no debe jajajajaja :see_no_evil:, lo ideal es que se meta a revisar los código ejemplos que proporciona el sdk para que se de una idea.

saludos

Cada uno sabe y es responsable de lo que hace jaja

1 me gusta

Hola @tnlgortiz si deseas ingresar datos a una tabla de usuario (según veo en tu código), lo primero que debes hacer es instanciar la tabla de usuario de esta manera.

SAPbobsCOM.UserTable oUserTable= null;
oUserTable= (SAPbobsCOM.UserTable)oCompany.UserTables.Item("nombretablacomoestaensap");

Después de esto ya podrías ingresar datos:

oUserTable.code = 1;
oUserTable.name = 1;
oUserTable.UserFields.Fields.Item("U_campodetutabla").Value = "algúnvalor";

Si deseas actualizar algún dato dentro de tú tabla:

oUserTable.GetByKey("valorcodedelalineaaeditar") // con esto validas que ese dato exista en la tabla lo manejas con un if(){}

si ese valor existe puedes actualizar los campos que necesites en esa línea.
Esto solo se puede utilizar para tablas de tipo bott_NoObject y bott_NoObjectAutoIncrement ya que las demas tablas son administradas por SAP.

1 me gusta

Gracias por la ayuda, lo practicaré.

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.