Criar Saldo Inicial para vários produtos em um Armazém (na SB9) | Fontes Premium 0039

Hoje será demonstrado em como incluir o saldo inicial (na SB9) de vários produtos em uma única rotina.

Imagina ter que cadastrar o saldo inicial de vários produtos em um armazém, dezenas ou centenas de registros.

Pensando nisso, foi montado dois fontes para auxiliar nesse processo, sendo que:

  1. O primeiro fonte, basicamente abre uma tela para selecionar um arquivo CSV com as colunas para realizar a importação acionando o ExecAuto da MATA220
Tela para seleção de arquivos

Tela para seleção de arquivos

  1. O segundo fonte, abre uma tela de parâmetros para digitar do produto de/até e em qual armazém vai ser criado, ai através disso, será acionado o Execauto da MATA220 de todos os produtos que não tenham ainda saldo inicial cadastrado na SB9 naquele armazém
Tela de parâmetros

Tela de parâmetros

Sendo que em ambas, é exibido no final um log do processamento. Abaixo um exemplo do segundo fonte:

Tela com o log do processamento

Tela com o log do processamento

Além disso, caso você precise, da pra acionar o segundo fonte direto no ponto de entrada ao incluir um produto, para ele já incluir o saldo inicial no armazém padrão.

Esse e outros Fontes Premium, estão disponíveis para os assinantes dos Cursos do Terminal de Informação, saiba mais em terminaldeinformacao.com/assinatura.

 

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

6 Responses

  1. Arthur Pedroti disse:

    Isso não é melhor por um MILE?

    • Bom dia Arthur, tudo joia?

      Opa, ótima ideia, é que pensamos em criar uma User Function para poder ser acionada inclusive num ponto de entrada após a inclusão do produto (seja no p.e. ITEM ou direto no MT010INC).

      E também dessa forma, dar uma autonomia na flexibilidade para quem deseja customizar o sistema.

      Tenha uma ótima e abençoada terça feira.

      Um forte abraço.

  2. Mauro Martins de Figueiredo Junior disse:

    Atilio tem como esse saldo inicia já ser criado na gravação do produto novo?

    Cadastrei produto novo, cliquei em salvar e após salvar, automaticamente já se cria o saldo inicial desse produto

    • Bom dia Mauro, tudo joia?

      Sim, você tem que acionar a função dentro do ponto de entrada, por exemplo, se você tiver usando o p.e. MT010INC, ficaria assim:

      User Function MT010INC()
      	// ...
      	u_APCPM02b(SB1->B1_COD, SB1->B1_PROC)
      	// ...
      

      Tenha uma ótima e abençoada terça feira.

      Um forte abraço.

      • Mauro Martins de Figueiredo Junior disse:

        Tentei fazer assim, porem ja erro ja na hora de abrir o cadastro de produto

        //Bibliotecas
        #Include “Protheus.ch”

        /*——————————————————————————————————*
        | P.E.: MT010INC |
        | Desc: Ponto de entrada após inclusão do produto |
        | Link: http://tdn.totvs.com/pages/releaseview.action?pageId=6087685 |
        *——————————————————————————————————*/

        User Function MT010INC()
        Local aArea := GetArea()
        //Local cRetorno := “”

        // Garante que estamos na área correta e com o registro travado
        RecLock(‘SB1’, .F.)
        B1_X_USER := RetCodUsr()
        SB1->(MsUnlock())

        // Chamada da função desejada com os campos do produto recém-incluído
        u_APCPM02b(SB1->B1_COD, SB1->B1_PROC)

        RestArea(aArea)
        Return

Deixe uma resposta

Terminal de Informação