Error 1470000307 - Duplicate bin locations

Buen día expertos, estoy elaborando un pequeño código para realizar una copia de una transferencia de stock, es decir, para duplicar una transferencia por medio de código usando DI API y unicamente modificar los almacenes de orígen y destino (no es necesario alterar lotes ni cantidades).
El problema es que me indica que las ubicaciones del almacén original no existen en el nuevo que yo le estoy asignando, y he intentado de varias formas pero no consigo lograrlo. Me aparece el error:

1470000307 - Duplicate bin locations have been removed

Les agrego el fragmento del código en asp.net:

    private void RealizarTransferencia()
    {
        if (oCompany == null || !oCompany.Connected)
            this.ConectarCompany();

        try
        {
            //Set up your company object to work with xml import/export.
            oCompany.XmlExportType = BoXmlExportTypes.xet_ExportImportMode;
            oCompany.XMLAsString = true;
            string xmlStockTransfer = string.Empty;

            //Load stock transfer
            oStTransf = oCompany.GetBusinessObject(BoObjectTypes.oStockTransfer);
            if (oStTransf.GetByKey(Int32.Parse(ddlUltimasTransferencias.SelectedValue.ToString())))
            {
                //Convert strock transfer object in a xml
                xmlStockTransfer = oStTransf.GetAsXML();
            }

            if (!string.IsNullOrEmpty(xmlStockTransfer))
            {
                //Intialize a new stock transfer through your xml
                oStTransf = oCompany.GetBusinessObjectFromXML(xmlStockTransfer, 0);
                //Change the fields that you want.

                oStTransf.FromWarehouse = "T-MEX";
                oStTransf.ToWarehouse = "MEX";

                for (int i = 0; i < oStTransf.Lines.Count; i++)
                {
                    oStTransf.Lines.SetCurrentLine(i);
                    oStTransf.Lines.FromWarehouseCode = "T-MEX";
                    oStTransf.Lines.WarehouseCode = "MEX";

                    //oStTransf.Lines.BinAllocations.SetCurrentLine(i);
                    //oStTransf.Lines.BinAllocations.BinActionType = BinActionTypeEnum.batToWarehouse;
                    oStTransf.Lines.BinAllocations.BinAbsEntry = 6334;
                    oStTransf.Lines.BinAllocations.BaseLineNumber = i;

                    //oStTransf.Lines.BinAllocations.Add();
                }

                //Add the new transfer.
                if (oStTransf.Add() != 0)
                {
                    HttpContext.Current.Response.Write("<script>alert('Error al cargar el documento: " + oCompany.GetLastErrorDescription() + "');</script>");
                }
                else
                {
                    HttpContext.Current.Response.Write("<script>alert('Transferencia " + oCompany.GetNewObjectKey() + " realizada con éxito');</script>");
                }
            }
        }
        catch (Exception ex)
        {
            HttpContext.Current.Response.Write("<script>alert('Error al crear la transferencia: " + ex.ToString() + "');</script>");
        }
    }

Alguno habrá tenido un problema similar o sabrá cómo puedo solucionarlo? Agradezco de antemano cualquier apoyo u orientación que puedan brindarme.

Saludos cordiales.

1 me gusta

Estimad@s buen día alguien de @BusinessOne, que nos pueda ayudar.

Saludos :raised_hand_with_fingers_splayed:t5:

1 me gusta

Mas que de SAP B1 sería de los programadores…

Aunque pregunta tonta (sin conocer de código ni meterme en el mismo), Dices que quieres duplicar una transferencia de un almacén al otro y el error te dice que “la localización que intentas de duplicar fue removido” es decir que no existe…

¿Este tipo de cambio lo puedes hacer de manera manual en SAP? (lo pregunto porque podemos estar hablando que en un almacén tengas ubicaciones y en el otro no, o por ejemplo que trabajes con sucursales y recuerdes que nos e puede hacer transferencias entre almacenes de sucursales distintas), por eso te digo que pruebes, en una base de datos de prueba primero por favor, si puedes realizar esa actividad de manera manual y normal.

EDIT: cuando vas a duplicar una transferencia de Stock en SAP B1 de manera manual, aparte de cambiar a nivel de líneas los almacenes como estás haciendo, tambien lo pide a nivel de cabecera (en la pantalla de transferencia de Stock, a la derecha en la parte superior pide el almacén principal y el que se le transferirá). Según yo, en el pedacito del código que compartirste solo estás modificando los almacenes a nivel de línea por ubicación directamente en los artículos.

Verifica si puedes por código primero cambiar la cabecera y luego realizas los cambios en las líneas, aunque en SAP al cambiar la cabecera te pregunta si quieres actualizar las líneas con la información nueva y al darle que si lo hace automático, no se si eso puedas verlo en programación.

4 Me gusta

Buen día, antes que nada gracias por tu respuesta y tu explicación. Y efectivamente era lo que comentabas, la ubicación existía en el primer almacén, pero al querer replicarla en el otro, no existía la misma ubicación y por eso me impedía dirigir el stock hacia allí.

De nuevo gracias por el apoyo. Un saludo.

1 me gusta

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