Você está na página 1de 5

PROCEDIMENTO DE PADRONIZAO DOS PROGRAMAS PARA GESTO CORPORATIVA

1) Utilizar as strings abaixo para que o programa aceite as alteraes de tamanho do campo Filial: FWGETTAMFILIAL -> Retorna o tamanho utilizado para a Filial (Substitui o Tamanho fixo de 2) Exemplo: AADD(aStr,{"XU_FILIAL" ,"C",2,0}) - ERRADO AADD(aStr,{"XU_FILIAL" ,"C", FWGETTAMFILIAL,0}) - CERTO Neste caso, todos os lugares que estiverem utilizando o tamanho 2 fixo devero ser alterados para que se torne flexvel a mudana do tamanho. FWGETCODFILIAL -> Retorna o cdigo da Filial posicionada (Substitui a utilizao do M0_CODFIL) A partir do momento que for definido que o tamanho do campo FILIAL pode ser aumentado, o tamanho fsico do campo M0_CODFIL ser 12, desta maneira, para utilizar o contedo correto a varivel FWGETCODFILIAL dever ser utilizada no lugar do campo M0_CODFIL. Exemplo: M0_CODFIL = 1234 Filial com tamanho de 4, porm se utilizado para comparar com a varivel cFilAnt o retorno ser .F., pois, contm 8 caracteres indesejados. - ERRADO FWGETCODFILIAL = 1234 Filial com tamanho 4 e sem os caracteres especiais - CERTO Para tratamento em dicionrios de dados, no possvel a utilizao das strings informadas, pois, esta substituda somente em tempo de compilao. Desta forma, em caso de dicionrio de dados deve utilizar as seguintes funes: 1) FWSizeFilial() -> Retorna o tamanho utilizado para a Filial (Substitui o Tamanho fixo de 2) 2) FWCodFil() -> Retorna o cdigo da Filial posicionada (Substitui a utilizao do M0_CODFIL) 2) Foi criado o grupo de campo 033 (SXG) e os campos referente a FILIAL foram atualizados no ATUSX P10 R2, favor avaliarem se todos os campos foram atualizados corretamente e alter-los se necessrio. Todos os novos campos referente a Filial devero ser inseridos no grupo de campo 033 (SXG) no ATUSX P10 R2. 3) Para a atualizao de campos conjugados, no qual, a filial faz parte do contedo do campo, dever ser criada uma funo com a sigla do

mdulo + UpdFConj() que retornar um array com a seguinte estrutura: aArray[n,1]=Alias aArray[n,2]=Campo aArray[n,3]=Tamanho original do campo (Deve ser informado o tamanho padro e no deve ser considerado o aumento ou diminuio do campo filial) aArray[n,4]=Indica a posio em que inicia a gravao do campo filial (Opcional. No caso de no existir este nvel, o campo ser apenas aumentado.) aArray[n,5]=Bloco de cdigos com a funo de atualizao dos dados a ser executada quando a posio 4 for igual a 0 (zero). Este bloco de cdigos recebera como parmetro as seguintes informaes: cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize. Exemplo de preenchimento: { | cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize| FunUpdRA( cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize ) } Function GPEUpdFConj() Local aFields := {} Aadd(aFields, { SRA, RA_P1FILP2,14, 7 } ) // Exemplo: PARTE101PARTE2 Aadd(aFields, { SRA, RA_FILUSR ,8, 1 } ) // Exemplo: 01PARTE2 Aadd(aFields, { SRA, RA_123456 ,8, 0, { cAlias, cField, nRealSize, nFilIni, nOldSize, nNewSize| FunUpdRA(cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize) }} ) // Exemplo: 01PARTE2 Return aFieds Function FunUpdRA(cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize) // Tratamentos necessrios e atualizao do contedo no banco de dados Return 4) Funes auxiliares para o desenvolvimento e padronizao dos programas: Funo: FWSizeFilial() Entradas: N/C Sadas: Tamanho do campo filial Objetivos: Retornar o tamanho do campo filial Funo: FWCodFil() Entradas: Grupo de empresas, Empresa+Unidade de Negcio+Filial Sadas: Cdigo da filial Objetivos: Retorna o cdigo da filial (M0_CODFIL) Funo: FWModeAccess()

Entradas: Alias e Tipo (1=Empresa,2=Unidade de Negcio ou 3=Filial) Sadas: Modo de acesso (Compartilhado ou Exclusivo) Objetivos: Retornar o modo de acesso do nvel informado Funo: FWGrpCompany() Entradas: N/C Sadas: Grupo de empresa atual Objetivos: Retornar o grupo de empresa utilizada Funo: FWAllGrpCompany() Entradas: N/C Sadas: Array com todos os grupos de empresas Objetivos: Retornar todos os grupos de empresas Funo: FWCompany() Entradas: Alias para verificar o modo de acesso da tabela Sadas: Empresa atual Objetivos: Retornar a empresa utilizada Funo: FWAllCompany() Entradas: Grupo de Empresas Sadas: Array com todas as empresas do grupo informado Objetivos: Retornar todas as empresas do grupo informado Funo: FWUnitBusiness() Entradas: Alias para verificar o modo de acesso da tabela Sadas: Unidade de negcios atual Objetivos: Retornar a unidade de negcios utilizada Funo: FWAllUnitBusiness() Entradas: Empresa, Grupo de Empresas Sadas: Array com todas as unidades de negcios da empresa e grupo informado Objetivos: Retornar todas as unidades de negcios da empresa e grupo informado Funo: FWFilial() Entradas: Alias para verificar o modo de acesso da tabela Sadas: Filial atual Objetivos: Retornar a filial utilizada Funo: FWAllFilial() Entradas: Empresa, Unidade de negcio e Grupo de Empresas Sadas: Array com todas as filiais do grupo para a empresa, unidade de negcio e grupo informado Objetivos: Retornar todas filiais do grupo para a empresa, unidade de negcio e grupo informado Funo: FWLoadSM0() Entradas: N/C Sadas: Array contendo as informaes do SIGAMAT

Objetivos: Retornar todos os dados do SIGAMAT, evitando vrias consultas diretamente na tabela Funo: FWSM0Layout() Entradas: Tipo=Grupo de Empresas, Nvel (1=Empresa, 2=Unidade de Negcio e 3=Filial) Sadas: Leiaute do nvel informado ou o leiaute completo se no informar o nvel Objetivos: Retornar o leiaute do nvel informado Funo: FWxFilial() Entradas: Alias, Empresa+Unidade+Filial, Modo de acesso empresa, Modo de acesso unidade, Modo de acesso filial. Sadas: Cdigo da filial com tratamento do modo de acesso dos nveis Objetivos: Retornar o cdigo da filial com o tratamento do modo de acesso dos nveis

Funo: FWFilialName() Entradas: Grupo de Empresas, Empresa+Unidade+Filial, Tipo (1=Reduzido,2=Completo) Sadas: Nome da Filial Objetivos: Retornar o nome da filial Funo: FWArrFilAtu() Entradas: Grupo de Empresas, Empresa+Unidade+Filial Sadas: Array contendo todas as informaes do SIGAMAT para o Grupo de Empresas, Empresa+Unidade+Filial informado. Objetivos: Retornar todas as informaes do SIGAMAT para o Grupo de Empresas, Empresa+Unidade+Filial informado. Funo: FWFilialStatus() Entradas: Grupo de Empresas, Empresa+Unidade+Filial Sadas: Indica se a filial pode ser utilizada para manuteno Objetivos: Indicar se a filial pode ser utilizada para manuteno Funo: FWCodEmp() Entradas: Alias da tabela Sadas: Cdigo da empresa no caso de estar configurada no leaiute do grupo, seno, retorna o grupo de empresas Objetivos: Retornar o cdigo da empresa no caso de estar configurada no leaiute do grupo, seno, retorna o grupo de empresas Funo: FWPesqSM0() Entradas: Campo de retorno Sadas: Contedo do campo informado para retorno ou um array com todos os retornos configurados na consulta padro SM0_01. Objetivos: Exibir uma tela para pesquisa das informaes no SIGAMAT e retornar o contedo do campo informado.

5) Os programas que utilizam a varredura na tabela SM0 (While), devem utilizar a funo FWLoadSM0() que retorna um array com todas as informaes do SIGAMAT. Desta forma, os programas sero padronizados e uma alterao futura no trar transtornos. Exemplo: aSM0 := FWLoadSM0() For nI := 1 To Len(aSM0) //Tratamentos desejados com as informaes do SIGAMAT Next nI 6) Para retornar informaes de uma filial especfica, utilize a funo FWArrFilAtu(). Exemplo: aFil := FWArrFilAtu(cEmpAnt,cFilAnt) Exemplo 2: aFil := FWArrFilAtu(04,E01U01F03) 7) O ambiente de Gesto de Pessoal j utilizava o conceito de multi empresas, sendo assim, para utilizar a empresa deve-se verificar se existe a empresa configurada para o grupo e caso no esteja configurada pegar o contedo do prprio grupo para manter o legado. Exemplo: aSM0 := FWLoadSM0() For nI := 1 To Len(aSM0) If !Empty(aSM0[nI,SM0_EMPRESA]) cEmp := aSM0[nI,SM0_EMPRESA] Else cEmp := aSM0[nI,SM0_GRPEMP] EndIf //-- Utiliza a varivel cEmp Next nI