Avalados por :

Guia para realizar uma produção utilizando a API da DI passo a passo

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

Olá,

Preciso realizar uma produção utilizando a API da DI e nunca fiz isso antes. Não há um código de exemplo no SDK para esse processo, então espero que alguém possa me orientar na direção certa.

Um requisito específico é que preciso alterar o preço de custo de um componente a cada vez.

Todas as respostas, dicas ou sugestões são bem-vindas.

Seguindo os passos como no cliente B1, eu suponho que teria que fazer assim (?):

  1. Abrir a lista de materiais relevante e alterar o preço do componente relevante
  2. Criar uma nova Ordem de Produção com estado planejado
  3. Adicionar a Ordem de Produção
  4. Recuperá-la com GetByKey e definir o estado como liberado.
  5. Criar um Recibo de Produção
    a. interface Ordem de Trabalho > BoObjectTypes.oWorkOrders ?
    b. em caso afirmativo, como extraio da Ordem de Produção, ou mesmo é possível fazê-lo?
    c. seria ótimo ter um código de exemplo para esta etapa.
  6. Adicionar o Recibo de Produção
  7. Recuperar a Ordem de Produção com GetByKey e definir o estado como fechado.

Há algum passo que eu possa omitir?

Saudações,

Johan

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

4 Respuestas

0
Cargando...

Obrigado ankit.chauhan1 , é muito apreciado!

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

Prezado johan.hakkesteegt ,

A ideia era conscientizá-lo sobre os objetos DI. Os códigos de exemplo fornecidos são apenas exemplos genéricos. Você pode precisar adicionar ou remover propriedades de acordo com seus requisitos.

Sempre é possível definir explicitamente ProductionOrderType e ProductionOrderStatus.

Sobre o Recebimento de Produção, no meu caso:

1. Sim, eu estava desenhando o cabeçalho da Ordem de Produção (Número do Produto na tela da Ordem de Produção), portanto, não usei a propriedade BaseLine.

2. Sim, ReceiptFromProduction.Lines.Quantity corresponde a oPO.PlannedQuantity. Você obterá detalhes sobre as quantidades na aba Resumo da Ordem de Produção assim que o Recebimento de Produção for adicionado.

3. Se não deseja alterar o Armazém, não é necessário utilizá-lo.

4. Não, você terá que fechar a Ordem de Produção.

Atenciosamente,

ANKIT CHAUHAN

Suporte do SAP Business One

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

Olá Ankit,

Muito obrigado por isso. Está perfeito, poderia me esclarecer algumas coisas?

Sobre o exemplo de código para a Ordem de Produção:

  1. Você não definiu a propriedade ProductionOrderType . É o valor padrão BoProductionOrderTypeEnum.bopotStandard ?
  2. Você não definiu a propriedade ProductionOrderStatus . É o valor padrão BoProductionOrderStatusEnum.boposPlanned ?

Sobre o exemplo de código para o Recebimento da Produção:

  1. Você não utilizou a propriedade BaseLine. Não é necessário, mesmo quando há múltiplos componentes? A Lista de Materiais cuidará de tudo isso? Em outras palavras, estou desenhando o cabeçalho da Ordem de Produção?
  2. Corresponde oReceiptFromProduction.Lines.Quantity a oPO.PlannedQuantity ?
  3. Preciso definir explicitamente oReceiptFromProduction.Lines.WarehouseCode?
  4. Uma vez que tenha adicionado o Recebimento da Produção , ele fechará automaticamente a Ordem de Produção ?

Saudações,

Johan

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

Prezado johan.hakkesteegt ,

Para a Ordem de Produção , você precisa usar o objeto ProductionOrders .

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

Para o Recebimento de Produção , você precisa usar o 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();

Estes ajudarão para a sua causa?

Cumprimentos cordiais,

ANKIT CHAUHAN

Suporte do 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?