Buenos días compañeros,
Estamos desarrollando un sistema con DI API para realizar las trasferencias de stock entre ubicaciones del almacén. Ya logramos hace una transferencia entre almacenes sin involucrar ubicaciones, pero no hemos podido realizar la transferencia entre ubicaciones. Aquí les dejo el código, no marca ningún error, pero no realizar nada.
Si alguien pudiera orientarme en que me falta o algún ejemplo de como realizar esto, se lo agradecería.
Saludos.
Si he trabajado con DI API, NO así con Ubicaciones, sin embargo, lo que yo haría es …
1.- Dentro del Sistema SAP (con el cliente), detectar que diferencia existe entre manejar ubicaciones y cuando no se manejan, para detectar que información adicional requiere.
2.- La idea del punto anterior, es identificar las tablas/campos adicionales en caso de aplicar, y en base a las algunas palabras clave, intentar encontrar en los objetos de DI API, los que aplican para plasmar dichas ubicaciones (SAPBobsCOM), y de alguna manera saber si la versión que tienes ya los contempla, esa es otra situación.
voy a buscar información, y de encontrar algo te la hago llegar.
Espero alguien más de nuestros compañeros pueda apoyarte puntualmente con el problema.
Otro comentario, la idea de comparar lo que hace el cliente de SAP con lo que estás haciendo en tu código (DI API), es para tratar de determinar si te hace falta plasmar alguna otra información.
Observación, según yo, la segunda linea del siguiente código, no es necesaria, porque en teoría toda primer linea no necesita un “Add()”, así que, la primer linea con dicho código es para adicionar la siguiente ubicacipón, sería buena que descartaras esa situación.
NOTA: En teoría no debería afectar, sin embargo, no está demás cerciorarse, na sea que DI API interprete que se pretende adicionar otra linea y ésta no tiene información (es una mera especulación).
Hola Chavalito, gracias por tus comentarios. En cuanto a identificar objetos y campos, el único que no aparece en el objeto OWTR es ToBinCode.
Y respecto a la linea de código que mencionas, si no la pongo marca un error al intentar fijar la ubicación destino.
Que tal Alex,
Encontre otro ejemplo en internet y mi código ahora esta de la siguiente forma. Solo faltaba agregar transfer.Lines.Add(); Pero aun con eso sigue sin funcionar.
Gracias por tus comentarios.
En mi caso obliga a utilizar el cardcode el cual coloco el nit de la empresa
transfer.CardCode = “C1111111”;
Agrega este codigo para que verfique si se esta insertando y obtega el error
if (transfer.Add() != 0)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(transfer);
System.GC.Collect();
string error = ConexionSAP.Conexion.compania.GetLastErrorCode() + " " + ConexionSAP.Conexion.compania.GetLastErrorDescription();
}
Que tal Alex, de hecho ya había probado eliminar todos los setCurrentLine y no pasa nada. Todo el código lo tengo dentro de un try-catch para manejar los errores, aun así probé el código que me propones pero no hay error. También intenté agregando el cardCode y sigue igual.
Respecto a los almacenes origen y destino, es el mismo porque solo quiero mover mercancía entre ubicaciones. Aun así probé quitar esas lineas, no marca error pero tampoco hace nada.
Ya con eso pude ver el error, gracias Alex. Primero me marcaba que no estaba especificando el BaseLine del Lote, corregí eso y ahora tengo el siguiente error :S
8 corresponde al campo BaseLineNum en OIBT del lote que estoy seleccionando. En la parte de la ubicacion que recibe da igual que tenga o no tenga BaseLineNum, no marca error.