Avalados por :

Guía para realizar una producción utilizando la API de DI paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 36 Vistas
0
Cargando...

Hola,

Necesito realizar una producción utilizando la API de DI, y nunca he hecho esto antes. No hay un código de ejemplo en el SDK para este proceso, así que espero que alguien pueda orientarme en la dirección correcta.

Un requisito específico es que necesito cambiar el precio de costo de un componente cada vez.

Todas las respuestas, consejos o sugerencias son bienvenidos.

Siguiendo los pasos como en el cliente B1, supongo que tendría que hacerlo así (?):

  1. Abrir la lista de materiales relevante y cambiar el precio del componente relevante
  2. Crear una nueva Orden de Producción con estado planificado
  3. Agregar la Orden de Producción
  4. Recuperarla con GetByKey y establecerla en estado liberado.
  5. Crear un Recibo de Producción
    a. interfaz Órdenes de Trabajo > BoObjectTypes.oWorkOrders ?
    b. en caso afirmativo, ¿cómo extraigo de la Orden de Producción, o incluso es posible hacerlo?
    c. sería genial tener un código de ejemplo para este paso.
  6. Agregar el Recibo de Producción
  7. Recuperar la Orden de Producción con GetByKey y establecerla en estado cerrado.

¿Hay algún paso que pueda omitir?

Saludos,

Johan

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Gracias ankit.chauhan1 , ¡se aprecia mucho!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Estimado johan.hakkesteegt ,

La idea era hacerte consciente acerca de los objetos DI. Los códigos de muestra proporcionados son solo ejemplos vagos. Es posible que necesites agregar o quitar propiedades según tus requerimientos.

Siempre puedes establecer explícitamente ProductionOrderType y ProductionOrderStatus.

Acerca de la Recepción de Producción, en mi caso:

1. Sí, estaba dibujando el encabezado de la Orden de Producción (Número de Producto en la pantalla de Orden de Producción), por lo tanto, no utilicé la propiedad BaseLine.

2. Sí, ReceiptFromProduction.Lines.Quantity corresponde a oPO.PlannedQuantity. Obtendrás los detalles sobre las cantidades en la pestaña de Resumen de la Orden de Producción una vez que se agregue la Recepción de Producción.

3. Si no deseas cambiar el Almacén, no es necesario utilizarlo.

4. No, tendrás que cerrar la Orden de Producción.

Saludos cordiales,

ANKIT CHAUHAN

Soporte de SAP Business One

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Ankit,

Muchas gracias por esto. Es perfecto, ¿podrías aclararme algunas cosas?

Sobre el ejemplo de código para la Orden de Producción:

  1. No has establecido la propiedad ProductionOrderType . ¿Es el valor predeterminado BoProductionOrderTypeEnum.bopotStandard ?
  2. No has establecido la propiedad ProductionOrderStatus . ¿Es el valor predeterminado BoProductionOrderStatusEnum.boposPlanned ?

Sobre el ejemplo de código para el Recibo de la Producción:

  1. No has utilizado la propiedad BaseLine. ¿No es necesario, incluso cuando hay múltiples componentes? ¿Se encargará la Lista de Materiales de todo eso? En otras palabras, ¿estoy dibujando el encabezado de la Orden de Producción?
  2. ¿Corresponde oReceiptFromProduction.Lines.Quantity a oPO.PlannedQuantity ?
  3. ¿Necesito establecer explícitamente oReceiptFromProduction.Lines.WarehouseCode?
  4. Una vez que haya agregado el Recibo de la Producción , ¿se cerrará automáticamente la Orden de Producción ?

Saludos,

Johan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Estimado johan.hakkesteegt ,

Para la Orden de Producción , necesitas usar el objeto ProductionOrders .

SAPbobsCOM.ProductionOrders oPO = (SAPbobsCOM.ProductionOrders)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oProductionOrders);
oPO.ItemNo = "S10000";
oPO.PlannedQuantity = 2;
int APO = oPO.Add();

Para Recibo de Producción , necesitas usar el objeto Documents .

SAPbobsCOM.Documents oReceiptFromProduction = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInventoryGenEntry);
oReceiptFromProduction.Lines.BaseEntry = 153;
oReceiptFromProduction.Lines.BaseType = 202;
oReceiptFromProduction.Lines.Quantity = 1;
oReceiptFromProduction.Lines.TransactionType = SAPbobsCOM.BoTransactionTypeEnum.botrntComplete;
oReceiptFromProduction.Lines.WarehouseCode = "01";
int ARPO = oReceiptFromProduction.Add();

¿Ayudarán estos para tu causa?

Saludos cordiales,

ANKIT CHAUHAN

Soporte de SAP Business One

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?