Ponto entrada > Módulo GPAC > Tratamento standard OPTLIB 

SBBWST : Distinção dos exemplares de posto de carga

Este ponto de entrada serve a colocar uma distinção dos exemplares de posto de carga principal no sequênciamento (noção de sub-postos).

Para este facto, intervém :

-        a extracção dos dados posto (Separamento dos postos afectados em tantos exemplares que necessário)

- na extracção das operações (Afectação de operação ao bom exemplar de posto seguindo um critério parametrizável)

-       na actualização em saida de sequenciamento (actualização do critério) - ver tratamento OPTLIBA.

Exemplos:

Para uma distinção baseada sobre o utilitário, o posto P1 será decomposto como segue :

P1           - 00

P1           - 01 Utilitário1

P1           - 02 Utilitário2

Dispõe-se sempre de um exemplar 00 para as operações não afectadas segundo o critério.

Contexto e modo de funcionamento

Transacção

Não existe transacção em curso.

Ficheiro rasto

Pode existir um ficheiro rasto aberto (segundo parâmetro de lançamento de sequênciamento).

Diferentes casos de chamada

O ponto de entrada está chamado duas vezes, cada chamada é identificável pela variável GSBBWST :

GSBBWST  = "LOADWST"                      

Extracção dos postos de carga, o ponto de entrada deve preencher a lista dos critérios de ruptura do posto.

Para este facto, o quadro XSBBT(15)(100) deve ser alimentado em tomando de deixar o primeiro indice (0) em branco. A variável NBSBB deve conter o número de linhas preenchidas. A variável global GPE deve estar posicionada a 1 para significar que o posto está sujeito à distinção.

Exemplos:

XSBBT(0) = ""

XSBBT(1) = "OUTIL1"

XSBBT(2) = "OUTIL2"

NBSBB    = 3

GPE = 1 :

 

GSBBWST  = "LOADOPE"                        

Extracção das operações, o ponto de entrada deve fornecer o critério de distinção sob a forma de um campo da tabela MFGOPE, para tal falta preencher a variável alfanumérica XSCHSBB (comprimento 15).

O quadro XSBBT deve estar carregado ao novo se necessário.

Exemplos:

XSCHSBB = "EQUNUM"     # Campo standard utilitário

If [F:MWS]WST <> XWST

XSBBT(0) = ""

XSBBT(1) = "OUTIL1"

XSBBT(2) = "OUTIL2"

NBSBB    = 3

Endif

GPE = 1 :

 

Importante :

Como pode ser necessário de percorrer a tabela MFGOPE para encontrar os critérios utilizados, uma classe [F :MFO2] foi igualmente aberta a este uso (a classe [F :MFO] está em linha e não deve ser modificada

 

 

Variáveis e máscaras disponíveis

No momento da primeira chamada (GSBBWST = "LOADWST"), a classe [F :MWS] está em linha.

No momento da segunda chamada (GSBBWST = "LOADOPE"), as classes [F :MWS] e [F :MFO] estão em linha.

Tabelas abertas

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

Tabela

Conteúdo significativo

Intitulado Tabela

MFGHEAD

Não

Cabeçalho OF

MFGITM

Não

Artigos lançados

MFGMAT

Não

Matérias

MFGOPE

Não

Operações (MFO + MFO2)

SCHEDULING

Não

Dados de planificação

WORKSTATIO

Não

Postos de carga

TABWEEDIA

Não

Esquemas semanais

ITMMASTER

Não

Artigo

ITMFACILIT

Não

Artigo/Estabelecimento

 

OPE_FOCUS : Colocação em evidência de operações ao lançamento de sequênciamento

 

Este ponto de entrada permite intervir na definição de uma lista de operações devendo estar colocados em evidências na afixação inicial do gantt.

Permite igualmente preencher o conteúdo da info-bolha ligada à operação.

Contexto e modo de funcionamento

Transacção

Não existe transacção em curso.

Ficheiro rasto

Pode existir um ficheiro rasto aberto (segundo parâmetro de lançamento de sequênciamento).

Diferentes casos de chamada

O ponto de entrada está chamado na extracção de cada operação.

A máscara [M :OPTK] está em linha no momento da chamada.

As classes [F :MFG], [F :MFO] e [F :SCH] estão em linha com um conteúdo significativo.

A colocação em evidência de uma operação está formulada por uma chamada ao sub-programa WRITE_FOCUS do tratamento OPTLIBB.          

Subprog WRITE_FOCUS(LFCY, LCOD, LOK, LMESS)

Com :

Char     LFCY  : Estab. de produção

Char     LCOD  : código resposta

"000" = acção de tipo focus (valor constante)

Integer  LOK   : Indicador focus

0 = sem focus (apenas substituição texto info-bolha)

1 = focus activo

Char     LMESS : Mensagem a afixar na info-bolha

A identificação da operação deve estar preenchida na máscara [M :OPW1] (MFGNUM, OPENUM, OPESPLNUM). 

Exemplo de implementação

###########################################################################

$ACTION

Check box ACTION

 When "OPE_FOCUS"      : Gosub OPE_FOCUS

Endcase

Return

$OPE_FOCUS

Local Integer IOK     : IOK = 0

Local Char    XMESS(250)  

Local Char    WCHAIN, WSPECHAR

 

# para teste, marcam-se as operações comportando um utilitário como estando a colocar em evidência

If [F:MFO]EQUNUM = "" : Return Endif

# quando se escreve um cadeia, sempre se assegurar que ela não contém vírgula, ponto-e-vírgula ...

WCHAIN     = [M:OPTK]ITMREF

WSPECHAR   = ","

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMREF = WCHAIN

 

WCHAIN     = [M:OPTK]ITMREF

WSPECHAR   = ";"

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMREF = WCHAIN

 

# quando se escreve um cadeia, sempre se assegurar que ela não contém vírgula, ponto-e-vírgula ...

WCHAIN     = [M:OPTK]ITMDES1

WSPECHAR   = ","

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMDES1 = WCHAIN

 

# quando se escreve um cadeia, sempre se assegurar que ela não contém vírgula, ponto-e-vírgula ...

WCHAIN     = [M:OPTK]ITMDES1

WSPECHAR   = ";"

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMDES1 = WCHAIN

 

 

XMESS = [F:MFO]MFGNUM+"/"+num$([F:MFO]OPENUM)-[M:OPTK]ITMREF-[M:OPTK]ITMDES1-"____(Focus posicionado sobre esta operação ...)    "

 

[M:OPW1]MFGNUM = [F:MFO]MFGNUM

[M:OPW1]OPENUM = [F:MFO]OPENUM

[M:OPW1]OPESPLNUM = [F:MFO]OPESPLNUM

 

Call WRITE_FOCUS([F:MFO]MFGFCY, "000", IOK, XMESS) From OPTLIBB

Return

 

 

 

 

 
Tabelas abertas

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

Tabela

Conteúdo significativo

Intitulado Tabela

MFGHEAD

Sim

Cabeçalho OF

MFGOPE

Sim

Operações

SCHEDULING

Sim

Dados de planificação

INIT_JAL : Inicialização do sequenciamento

Este ponto de entrada permite de intervir sobre o conjunto das operações carregadas em memória antes extracção das operações versus afim de intervir sobre certos valores.

Contexto e modo de funcionamento

Trata-se aqui de intervir sobre a lista das operações carregadas em memória.

As variáveis disponíveis para cada operação são :

Local Shortint WOPENUM (NBOPMX)           : # número oper
Local Shortint WOPESPLNUM (NBOPMX)        : # fract. oper
Local Char    WWST    (GLONWST) (NBOPMX)  : # posto
Local Char    WLAB    (GLONWST) (NBOPMX)  : # mão-de-obra
Local Decimal WSETLABC(NBOPMX)            : # coef pagamento MO
Local Decimal WOPELABC(NBOPMX)            : # coef oper MO
Local Decimal WOPELABC(NBOPMX)            : # estado operação
Local Date  WOPESTR (NBOPMX)          : # data início
Local Date  WOPESTR (NBOPMX)          : # data fim
Local Integer WWSTN   (NBOPMX)            : # nº de postos
Local Integer WLABN   (NBOPMX)            : # nº de pessoas
Local Integer WPRPTIM (NBOPMX)            : # tempos preparação
Local Decimal WSETTIM (NBOPMX)            : #tempos pagamento para 1 ex
Local Decimal WOPETIM (NBOPMX)      : # tempos operatórios para 1 ex
Local Decimal WWAITIM (NBOPMX)            : # tempo espera
Local Decimal WPSPTIM (NBOPMX)            : # tempos pós oper
Local Decimal WQTY (NBOPMX)              : # quantidade restante
Local Date  WFRCSTRD (NBOPMX)        : # data início forçado
Local Decimal  WFRCSTRH (NBOPMX)       : # Hora data forçada
Local Char    WFRCHOU(5)(NBOPMX)            # Hora forçada ao formato hh:mm          
Local Decimal WFRCSTRF(NBOPMX)          : # Fracção de dia início forçado
Local Integer WFRCFLG (NBOPMX)            : # Flag oper início forçado
Local Decimal WWSTTYP (NBOPMX)       : # código sub-contrato
Local Decimal WSCOLTI (NBOPMX)            : # atraso sub-contrato
Local CharWWIPNUM (GLONVCR)(NBOPMX)   : # nº em curso sub contrato
Local CharWSCOITMREF(GLONITM)(NBOPMX) : # artigo sub-contrato
Local Decimal WSCDCOD (NBOPMX)            : # cód planif.
Local Integer WNEXOPEN (NBOPMX)           : # nº op seguinte
Local Integer WNEXSPLN (NBOPMX)           : # fract. op seguinte (criado em PG)
Local Integer WOPERG (NBOPMX)             : # fila op.
Local Integer WOPETRT (NBOPMX)            : # op. trat. em classificaçãot
Local Decimal WSCDPCT (NBOPMX)            : # % chev

Utilização

Exemplo de código para substituir o atraso de compra art. serviço de sub-contrato pelo atraso artigo/estabelecimento :

$ACTION

Check box ACTION

      When "INIT_JAL" : Gosub INIT_JAL

Endcase

Return

$INIT_JAL

For I = 0 To NBOP-1

   If WWSTTYP(I) = 3

       Read [ITF]ITF0=WSCOITMREF(I);WMFGFCY

       If !fstat : WSCOLTI(I)= [F:ITF]OFS : Endif

Endif

Next I

Return