Ponto entrada > Módulo Stocks > Tratamento standard MTOLINKLIB 

MTOLINK_PRP : Seleção das ordens ou Acréscimo de critérios

Este ponto de entrada permite ignorar certos pedidos ou recursos para o cálculo das afetações, ou de considerar critérios de afetações específicos em conjunção com o ponto de entrada MTOLINK_RULES.

Contexto e modo de funcionamento.

No carregamento dos quadros (memória) dos pedidos e dos recursos, é possível de igorar a ordem em curso (na classe [F:ORDB]) em posicionando GPE a 1, ou de valorizar até 3 campos utilizadores (cadeias de 50 máximo) em testando MTOLINK_PE_MODE :

- MTOLINK_PE_MODE = "D" para os pedidos :

TDEM_USRFLD1(NDEM)
TDEM_USRFLD2(NDEM)
TDEM_USRFLD3(NDEM)

- MTOLINK_PE_MODE = "R" para os recursos :

TRESS_USRFLD2(NRESS)
TRESS_USRFLD2(NRESS)
TRESS_USRFLD3(NRESS)

O conjunto das ordens afetadas para o cálculo são carregados em memória e por razões de performance é judicioso de guardar aqui todo elemento a tomar em conta.
A este propósito, é aconselhar os campos utilizadores diretamente na tabela ORDERS para melhores performances.

No exemplo de código dado mais abaixo, o campo utilizador XUSRFLD está copiado na variável memória

MTOLINK_RULES : Acréscimo de uma regra

Este ponto de entrada permite, em conjunção com o ponto de entrada MTOLINK_PRP, ativar os constrangimentos suplementares (regras) no algoritmo de cálculo das afetações.

Contexto e modo de funcionamento.

Ao início do cálculo das afectações, as regras de priorização dos recursos (cf regras de afetação) são carregadas em memória com WUSRFLT(I_RULE)=1.

Justo antes, uma primeira chamada ao ponto de entrada MTOLINK_RULES está efetuada em modo "activação" com MTOLINK_PE_MODE = 'ACT'. Permite indicar ao cálculo :

- 1 ou 3 regras específicas suplementares e prioridades a considerar, em afectando WUSRFLT(WNBRULE)=2 e em incrementando o contador de regra ((WNBRULE)

- ou de gerir as condições específicas acrescentadas à parametrização das regras standards.

Uma segunda chamada ao ponto de entrada MTOLINK_RULES está em seguida em modo "aplicação" com :

- MTOLINK_PE_MODE = 'APP' para uma regra específica (se WUSRFLT(I_RULE)=2)

- MTOLINK_PE_MODE = 'BPP' para toda a regra específica ou standard (qualquer que seja WUSRFLT(I_RULE))

Posicionar então GPE a 1 para indicar a incompatibilidade entre o pedido em curso (variáveis TDEM_...(I)) e o recurso em curso (variáveis TRESS_...(K)) para a regra em curso (W...(I_RULE)).

Observação : R_USRFLD1..3 = TDEM_USRFLD1..3 (I)

Exemplo de utilização

#----------------------------------------------------------------------------------
$ACTION

When "MTOLINK_PRP" : Gosub MTOLINK_PRP
When "MTOLINK_RULES" : Gosub MTOLINK_RULES
Endcase
Return

#----------------------------------------------------------------------------------
# Entry point triggered when loading demand(s) and resource(s) lists
# Can be use either to store user data (for later use when applying rules)
# Or to skip an order (return GPE = 1)
$MTOLINK_PRP
# in this example, we store XUSRFLD in user fields
GPE = 0
Case MTOLINK_PE_MODE
When "D": TDEM_USRFLD1(NDEM) = [F:ORDB]XUSRFLD
When "R": TRESS_USRFLD1(NRESS) = [F:ORDB]XUSRFLD
Endcase
Return


#----------------------------------------------------------------------------------
# Here we use the user fields stored using MTOLINK_PRP entry point
# Assignments will only be generated for compatible user fields

$MTOLINK_RULES
Case MTOLINK_PE_MODE
When "ACT": # rule activation
WUSRFLT(WNBRULE) = 2
WNBRULE += 1
When "APP": # rule application
# matching user fields
GPE = 0
If TRESS_USRFLD1(K) <> TDEM_USRFLD1(I) : GPE = 1 : Endif
Endcase
Return

BEFMLKCRE : Antes criação de uma afetação na tabela MTOLINK

Este ponto de entrada permite intervir antes a criação de um novo registo de afetaçaão na tabela MTOLINK

Contexto e modo de funcionamento.

Transação

Existe uma transação em curso.

Para anular a transação se existe um problema, falta posicionar a variável GOK a 0.

Classes ficheiros e ecrãs disponíveis

O buffer [F:MLK1] está carregado ao momento de chamada do ponto de entrada.

A classe ecrã [M:MLIK] está carregada com os parâmetros de chamada ao tratamento MTOLINKLIB :

- [M:MLIK]STOFCY e [M:MLIK]ITMREF indica o artigo-estabelecimento respeitante

- [M:MLIK]DEMTYP, DEMNUM, DEMLIN, DEMSEQ, DWIPTYP indica o em curso de pedido afetado

- [M:MLIK]RESSTYP, RESSNUM, RESSLIN, RESSSEQ, RWIPTYP indica o em curso de recurso afetado

- [M:MLIK]MAJCOD indica o tipo de tratamento

C

Criação de uma nova afetação

M

Modificação de uma afetação

A

Supressão de uma afetação

P

Proposição de novas afetações geradas segundo a regra afetação de artigo-estabelecimento

Z

CAZ das afetações associadas a um recurso ou um pedido.

E

Entrada de um recurso

Tabelas abertas

No quadro a seguir, a flag conteúdo significativo significa que o conteúdo está em fase com o contexto (...).

Tabela

Abreviação

Conteúdo significativo

Título Tabela

MTOLINK

MLK1

Sim

Afetações

ORDERS

ORDB

Não

Em-curso

PARMTO

PTO

Sim se e só se [M:MLIK]MAJCOD="P" ou "E"

Regra de afetação

BEFMLKUPD : Antes criação de uma afetação na tabela MTOLINK

Este ponto de entrada permite intervir antes a modificação de um registo de afetação na tabela MTOLINK.

Contexto e modo de funcionamento.

Transação

Existe uma transação em curso.

Para anular a transação se existe um problema, falta posicionar a variável GOK a 0.

Classes ficheiros e ecrãs disponíveis

O buffer [F:MLK1] está carregado ao momento de chamada do ponto de entrada. A chamada é feita no seio de um anel For [MLK1].

A classe ecrã [M:MLIK] está carregada com os parâmetros de chamada ao tratamento MTOLINKLIB :

- [M:MLIK]STOFCY e [M:MLIK]ITMREF indica o artigo-estabelecimento respeitante

- [M:MLIK]DEMTYP, DEMNUM, DEMLIN, DEMSEQ, DWIPTYP indica o em curso de pedido afetado

- [M:MLIK]RESSTYP, RESSNUM, RESSLIN, RESSSEQ, RWIPTYP indica o em curso de recurso afetado

- [M:MLIK]MAJCOD indica o tipo de tratamento

C

Criação de uma nova afetação

M

Modificação de uma afetação

A

Supressão de uma afetação

P

Proposição de novas afetações geradas segundo a regra afetação de artigo-estabelecimento

Z

CAZ das afetações associadas a um recurso ou um pedido.

E

Entrada de um recurso

Tabelas abertas

No quadro a seguir, a flag conteúdo significativo significa que o conteúdo está em fase com o contexto (...).

Tabela

Abreviação

Conteúdo significativo

Título Tabela

MTOLINK

MLK1

Sim

Afetações

ORDERS

ORDB

Não

Em-curso

PARMTO

PTO

Sim se e só se [M:MLIK]MAJCOD="P" ou "E"

Regra de afetação

BEFMLKDEL : Antes criação de uma afetação na tabela MTOLINK

Este ponto de entrada permite intervir antes a supressão de um registo de afetação na tabela MTOLINK.

Contexto e modo de funcionamento.

Transação

Existe uma transação em curso.

Para anular a transação se existe um problema, falta posicionar a variável GOK a 0.

Classes ficheiros e ecrãs disponíveis

O buffer [F:MLK1] está carregado ao momento de chamada do ponto de entrada. A chamada é feita no seio de um anel For [MLK1].

A classe ecrã [M:MLIK] está carregada com os parâmetros de chamada ao tratamento MTOLINKLIB :

- [M:MLIK]STOFCY e [M:MLIK]ITMREF indica o artigo-estabelecimento respeitante

- [M:MLIK]DEMTYP, DEMNUM, DEMLIN, DEMSEQ, DWIPTYP indica o em curso de pedido afetado

- [M:MLIK]RESSTYP, RESSNUM, RESSLIN, RESSSEQ, RWIPTYP indica o em curso de recurso afetado

- [M:MLIK]MAJCOD indica o tipo de tratamento

C

Criação de uma nova afetação

M

Modificação de uma afetação

A

Supressão de uma afetação

P

Proposição de novas afetações geradas segundo a regra afetação de artigo-estabelecimento

Z

CAZ das afetações associadas a um recurso ou um pedido.

E

Entrada de um recurso

Tabelas abertas

No quadro a seguir, a flag conteúdo significativo significa que o conteúdo está em fase com o contexto (...).

Tabela

Abreviação

Conteúdo significativo

Título Tabela

MTOLINK

MLK1

Sim

Afetações

ORDERS

ORDB

Não

Em-curso

PARMTO

PTO

Sim se e só se [M:MLIK]MAJCOD="P" ou "E"

Regra de afetação

MTOLINK_ENT2 : Alocação dos pedidos afetados a um recurso

Este ponto de entrada permite intervir na entrada de um recurso (receção ou declaraçaão de produção) para gerar de maneira específica a alocação dos pedidos afetados ao recurso.

Contexto e modo de funcionamento

Transação

Existe uma transação em curso.

Para anular a transação se existe um problema, falta posicionar a variável GOK a 0.

Classes ficheiros e ecrãs disponíveis

A classe ecrã [M:MLIK] está carregada com os parâmetros de chamada ao tratamento MTOLINKLIB :

- [M:MLIK]STOFCY e [M:MLIK]ITMREF indica o artigo-estabelecimento respeitante

- [M:MLIK]RESSTYP, RESSNUM, RESSLIN, RESSSEQ, RWIPTYP indica o em curso de recurso afetado

- [M:MLIK]LIKQTY indica em unidade de stock a quantidade de recurso entrado

- [M:MLIK]MAJCOD indica o tipo de tratamento e vale "E" para Entrada de recurso.

- [M:MLIK]TRTNAM vale "MTKMTOLIB" para uma declaração de produção, "PURMTOLIB" para uma receção.

Utilização

Um quadro dos NDEM pedidos (TDEM_OFF, TDEM_TYP, TDEM_NUM, TDEM_MTO, TDEM_DAT) afetados ao recurso entrado e constituido segundo TDEM_OFF :

TDEM_TYP,TDEM_NUM,TDEM_DAT : tipo nº e data de fim de em curso da encomenda

TDEM_MTO : qtd afetada entre o pedido e o recurso.

TDEM_OFF : ordem de ordenação para o pedido, calculado segundo os parãmetros de prioritização dos pedidos da regra de afetação

Em standard, o tratamento é o seguinte :

WREQQTY = [M:MLIK]LIKQTY : WCOVQTY = 0

For I=0 para NDEM-1

Leitura em curso do pedido (I)

Gosub FILL_LINKD : # Afetação de [M:MLIK]DEMTYP, DEMNUM, DEMLIN, DEMSEQ, DWIPSTA, DWIPTYP segundo o em-curso

[M:MLIK]LIKQTY = min(TDEM_MTO(I), WREQQTY-WCOVQTY)

Gosub MAJ_MTO_ALLOCATION From =[M:MLIK]TRTNAM : # Alocação baseada sobre afetação

WCOVQTY += [M:MLIK]LIKQTY

Maj do em curso do pedido (I) com qtd afetada -= [M:MLIK]LIKQTY

If [M:MLIK]LIKQTY = TDEM_MTO(I)

Gosub MTOLINK_DEL : # Supressão da afetação entre o recurso e o pedido (I)

    Else

[M:MLIK]LIKQTY = TDEM_MTO(I) - [M:MLIK]LIKQTY

Gosub MTOLINK_MOD : # Modificação da afetação entre o recurso e o pedido (I)

Endif

If WCOVQTY >= WREQQTY : break : Endif

Next I

Maj do em curso do pedido com quantidade afetada -= WREQQTY

Posicionar a variável global GPE ao valor 1 para inibir este tratamento standard.

Tabelas abertas

No quadro a seguir, a flag conteúdo significativo significa que o conteúdo está em fase com o contexto (...).

Tabela

Abreviação

Conteúdo significativo

Título Tabela

MTOLINK

MLK1

Não

Afetações

ORDERS

ORDB

Não

Em-curso

ITMFACILIT

ITF

Sim

Artigos - Estabelecimentos

PARMTO

PTO

Sim

Regra de afetação