Escolar Documentos
Profissional Documentos
Cultura Documentos
Planeamento de Ordens
Semiacabados
VIEIRA DE CASTRO SAP S/4 HANA
IMPLEMENTATION
inetum.com
01/01/2021 | ©2020 Inetum | Ref. XXXXXX v1.0
Classification: confidential document
Inetum HBSP é certificada ISO 9001:2015 para as suas atividades em: Serviços de consultoria, formação, manutenção aplicacional e outsourcing
geridos a partir de Portugal.
Inetum HBSP é certificada ISO/IEC 20000-1:2018 para as suas atividades em: Área de Negócio SAP Application Management (SAM) em Portugal.
Contents
1. Introduction_______________________________3
1 Naming Convention___________________________4
SAP PP
2.1 Pressupostos
Desenvolvimento de um cockpit de produção que possibilite, através da ordem de produto acabado, a
criação da(s) respetiva(s) ordem de semiacabado.
O planeamento de produção dos semi-acabados será apenas realizado após o sequenciamento das
ordens de produto acabado pelos utilizadores.
O sequenciamento das ordens PA será realizado via transação standard SAP (CM21/25) que irá alterar o
status na ordem para “Plan” (JEST-OBJNR -> STAT= I0117 + INACT diferente de “X” (se X verificar
replaneamento) e/ou no caso de se ter feito replaneamento STAT= I0037 + INACT dif de “X” ). São
estas as ordens passiveis de despoletar o processo de planeamento de ordens de SA para ordens de PA
que não possuam entrada numa tabela de controlo ZPP_Planeamento_Prod abaixo descrita, sendo esta
atualizada no momento em que se executa/cria o “planeamento” de ordens de SA respetivas.
De acordo com os critérios de seleção, nomeadamente data-sys -> datas futuras (planeamento é
impossível para datas/horas passadas, o utilizador terá que replanear a ordem de PA), material PA,
linha de produção, etc, teremos um output segregado por material PA/ordem de produção, ordenado
por data de início de produção dos materiais PA que possuam esse SA a planear, etc, que terá para cada
material ordem entradas no ALV segregado por cada SA encontrado na sua lista técnica.
As Ordens de Produção SA terão regras definidas e com parâmetros de controlo determinados em uma
tabela de controlo Z (por exemplo: para determinado tipo de ordem de PA, só é possível criar
determinado tipo de ordem SA entre outros possíveis e a determinar). A seleção da versão de produção
é controlada via tabela ZTPP0025 em que se linka as linhas de produção PA com linhas de produção SA
(esta tabela já existe) em que será emitido POPUP com as versões de produção possíveis (obtidas via
roteiro SA / linha de produção linkadas) capacidade Kg’s, quantidade necessária para as seleções
efetuadas, e nº de ordens propostas para cobrir as necessidades de SA resultantes das ordens de PA
selecionadas (so é possível selecionar ordens de PA (linhas do ALV) cujo material SA é o mesmo), se as
linha de produção do SA é o admissível na tabela ZTPP0025. Se as linhas de produção SA na versão de
produção forem distintas para a seleção PA’s, a popup é desmultiplicada, exemplo:
3 Ordens de PA
A linha 1 linka na tabela com 2 ordens de PA, a linha 2 linka com 1 ordem de PA e a linha 3 linka com
as 3 ordens de PA.
Estas hipóteses tem que surgir listadas na pop-up, (com os dados quantidade, nº de ordens a criar etc).
O utilizador seleciona a/s opções pretendidas que cubram as necessidade (checkbox). Na situação
exemplo, se selecionarem a opção 1, a opção 3 torna-se impossível de selecionar, podendo selecionar a
opção 2 (não é obrigatório e não será criada ordem de SA para a necessidade da ordem 3).
Após o sucesso na atualização da tabela é feito “refresh” ao ALV do cockpit (as ordens em que foi
realizado o planeamento de ordens SA deixarão de aparecer). Qual a necessidade do campo “Já
planeada” na tela output?
A liberação e o sequenciamento das ordens de SA serão realizados pelas devidas transações standard
SAP.
Tabela para configuração das linhas (para cada linha de produção associação entre os
centros de trabalho). A informação desta tabela ainda esta em validação por parte da
Vieira de Castro.
Tabela com a ligação das ordens de produção de semiacabado que serão criadas com
base na ordem de embalamento
Ter em conta que o cockpit poderá ou deverá ser duplicado de forma que um seja exclusivo para
bolachas e outro exclusivo para confeitaria.
Os campos de seleção terão por base o ecrã inicial da COOIS. Abaixo seguem os campos de seleção:
Material – Este campo deve ser do tipo MARA-MATNR e deve ter a ajuda de pesquisa MAT1.
Este campo deve ser composto pelo código de material de produto acabado. Para isso aceder à
tabela MAKT-MATNR. Este deve ser preenchido unicamente com código de material de produto
acabado (4*, tipo de material Z007 e Z008), caso contrário exibir mensagem de erro. Para isso
aceder à tabela MARA-MATNR=MTART (para esta validação podemos ter de criar um parâmetro
na tabela de parâmetros).
Centro (Campo obrigatório)– Este campo deve ser do tipo T001W-WERKS e deve ter a ajuda
de pesquisa H_T001W_C. Este deriva da “Unidade Produção” selecionada, podendo estar oculto
ou preenchido por defeito.
Tipo de Ordem (Campo obrigatório) – Este campo deve ser do tipo T003O-AUART e deve
conter somente os tipos de ordem onde T003O-AUTYP = 10 (possivelmente poderá ser
necessário validar os tipos de ordem por unidade e se assim for será necessário criar uma
tabela).
Versão de Produção (Campo obrigatório) – Este campo deve ser composto pela versão da
seleção realizada. Após preencher a versão (campo anterior), deve aceder á tabela MKAL e
entrar com MKAL-MATNR = Valor do campo Material, MKAL-WERKS = valor do campo Centro e
após entrar devolver MKAL-VERID.
Linha de Produção (Campo obrigatório) – Este campo deve ser do tipo CRHD-ARBPL. Após
preencher a versão (campo anterior), deve aceder á tabela MKAL e entrar MKAL-MATNR = valor
do campo Material, MKAL-WERKS = valor do campo Centro MKAL-VERID = valor do campo
versão de produção e após entrar devolver MKAL- MDV01. (a validar ainda pois esta pendente
da tabela A com a ligação das linhas).
Data de Inicio = Este campo deve ser do tipo GSTRP da COOIS (campo data).
Parâmetros de Importação:
IV_PROD_ORDER_SEL = X
IS_OBJECTS_TO_READ:
HEADER = X
ITEM = X
OPERATION = X
COMPONENT = X
IT_PARAMETER:
SELNAME = S_MATNR
KIND = S
SIGN = I
OPTION = BT
LOW = Limite inferior do material. Se o material não tiver os 18 deve-se passar zeros à
esquerda.
HIGH = Limite superior do material. Se o material não tiver os 18 deve-se passar zeros
à esquerda.
IT_PARAMETER:
SELNAME = S_AUART
KIND = S
IT_PARAMETER:
SELNAME = SO_VERID
KIND = S
SIGN = I
OPTION = BT
LOW = Limite inferior da versão de produção.
HIGH = Limite superior da versão de produção.
IT_PARAMETER:
SELNAME = S_ARBPL
KIND = S
SIGN = I
OPTION = BT
LOW = Limite inferior da versão de produção.
HIGH = Limite superior da versão de produção.
Se preencheu Data de Inicio (data de inicio da ordem) e para isso deve-se passar:
IT_PARAMETER:
SELNAME = S_ECKST
KIND = S
SIGN = I
OPTION = EQ
LOW = Data de seleção com o formato AAAAMMDD (por exemplo se a data selecionada
for 01.08.2021 deve-se passar 20210801).
Igualmente pode ser necessário passar um intervalo de datas, e para isso deve-se passar:
IT_PARAMETER:
SELNAME = S_ECKST
KIND = S
Status: IT_STATUS_HDR
STAT = I0001
Status: IT_STATUS_OPR
STAT = I0117
Após a listagem ser obtida é necessário ignorar as ordens de produção de produto acabado que estão já
inseridas na tabela Z que vai guardar a ligação das ordens de produto acabado às ordens de
semiacabado.
Des. Linha Produção – Neste campo é pretendido que seja devolvido a descrição da(s)
linha(s) de produção.
o Com o valor do campo acima (Linha), aceder à tabela CRHD_V1 e entrar com CRHD_V1-
ARBPL = linha de produção, CRHD_V1- SPRAS = sy-langu e após enrar retirar o valor de
CRHD_V1- KTEXT. Este ponto ainda este pendente da tabela de ligação das linhas.
Descrição do Material = Para cada material obtido no passo acima, vamos retirar da tabela
CT_IOOPCOMP o valor de CT_IOOPCOMP-MATXT.
Quantidade Semiacabado - Para cada material obtido no passo acima, vamos retirar da
tabela CT_IOOPCOMP o valor de CT_IOOPCOMP-BDMNG.
Unidade Medida Semiacabado - Para cada material obtido no passo acima, vamos retirar da
tabela CT_IOOPCOMP o valor de CT_IOOPCOMP-MEINS.
Hora de Inicio = Aceder à tabela CT_IOHEADER e para cada AUFNR retirar o valor de
CT_IOHEADER- GSUZS.
Material PA – Valor do campo de seleção Material. No caso de não haver material selecionado
na tela inicial vamos retirar da tabela CT_IOHEADER para cada AUFNR o valor de
CT_IOHEADER-PLNBEZ.
Descrição VP – Neste campo é pretendido que seja devolvido a descrição da(s) versão de
produção. Para isso com o valor obtido no campo acima, vamos à tabela MKAL e vamos entrar
com MKAL-VERID = valor do campo versão de produção e retirar o valor de MKAL-
VERID=TEXT1
Botão Executar – Botão para avançar com a criação das ordens após selecionar as mesmas.
Só podem selecionar linhas para criar ordens de produção dentro da mesma arvore (linha,
data e semiacabado) caso contrário deve dar erro.
Tipo de Ordem (Campo obrigatório) = Este campo deve ser do tipo T003O-AUART e deve
conter somente os tipos de ordem onde T003O-AUTYP = 40 (possivelmente poderá ser
necessário validar os tipos de ordem por unidade e se assim for será necessário criar uma
tabela).
Linha de Produção = Valor do campo Linha da ALV associado aos materiais selecionados.
Deve ser auto preenchido e pode ser alterado pelo operador.
Centro de Trabalho (Campo obrigatório) = Deve ir à tabela “Z” e com base na linha de
produção selecionada no campo acima (linha do material selecionado) devolver somente os
centros de trabalho associados (necessário criar uma tabela para esta associação).
Qtd. a produzir = Deve preencher o campo com a soma das quantidades dos materiais
selecionados (valor de CT_IOOPCOMP-BDMNG ou do campo Qtd. Semiacado da ALV). No
entanto é necessário validar a quantidade a produzir com o valor dos campos MKAL-BSTMA e
MKAL- BSTMI da versão de produção escolhida por forma a determinarmos a quantidade a
produzir e o nº de ordens a produzir. O campo deve ser auto preenchido e pode ser editável.
Se escolhida V001 e como o valor a produzir é maior do que MKAL-BSTMA (700) então vamos
subtrair os 1650 por 700 e vamos ter:
Agora vamos ter de verificar a sobra com o valor de MKAL-BSTMA (700). Se a sobra maior que
MKAL-BSTMA então vamos subtrair a sobra ao valor de BSTMA, que neste caso é inferior (250 <
700). Então vamos pegar na sobra e vamos ver se é maior que MKAL- BSTMI (400) que neste
caso é inferior (250 < 400). Então vamos criar uma ultima ordem de 400.
Se escolhida V002 e como o valor a produzir é menor do que MKAL-BSTMA (2000) então
vamos validar se a quantidade a produzir é maior que MKAL- BSTMI (2000) que neste caso e
inferior (1650 < 1800). Então vai ser criada somente uma ordem de produção de 1800.
Agora vamos ter de verificar a sobra com o valor de MKAL-BSTMA (700). Se a sobra maior que
MKAL-BSTMA então vamos subtrair a sobra ao valor de BSTMA
Data Fim = Deve ter o formato de data e deve estar preenchido por defeito com o valor do
campo de Data Inicio da ALV, podendo ser alterada.
Após preencher todos os campos ao clicar em Sair, deve fechar a popup e não fazer qualquer ação.
Para este processo e olhando ao exemplo podem ser criadas várias ordens de produção mediante a
quantidade a produzir e as quantidades mínimas e máximas da versão de produção. Se clicar em
Confirmar deve chamar a bapi BAPI_PROCORD_CREATE e vamos passar a seguinte informação:
QUANTITY = Quantidade da ordem de produção a criar. Deve-se passar a quantidade por cada ordem
de produção a criar (olhando ao exemplo do calculo da quantidade a produzir).
QUANTITY_UOM = Valor do campo Unidade Medida Semiacabado - Para cada material obtido no
passo acima, vamos retirar CT_IOOPCOMP-MEINS.
Deve ser criada uma tabela Z para guardar as ordens criadas com a associação das ordens criadas à
ordem de produto acabado (Campo “Ordem PA” – Valor de CT_IOHEADER-AUFNR). Na tabela devem
ser colocadas todas as entradas como por exemplo:
Se a amassadeira (CT) tem capacidade de 200 KG e a quantidade a produzir é de 700 KG então vamos
criar 4 ordens de 200 KG, sendo que temos como base da necessidade as ordens 10000000 e 10000001
na tabela após a criação das ordens ficaria:
No programa deve ter um botão para chamar a tabela que guarda as ligações das ordens, sendo
possível no caso de erro eliminar as entradas da tabela Z.
3.1.1 Fluxograma
Preencher com fluxograma (sempre que possível).
3.3 Autorizações
Preencher com toda a informação relativa a existência de algum tipo de autorizações a efetuar.
3.4 Pacote
Utilizar pacote ZHR.
Número
Nome Tipo Descritivo
Transporte