Professional Documents
Culture Documents
ConceitosdefilialdecompartilhamentosdearquivosFrameworkspTDN
Frameworksp / / Trabalhandocomarquivos(Tabelasdedados)
Conceitosdefilialdecompartilhamentosdearquivos
CreatedandlastmodifiedbyAlbertoSimplciodaSilvaonJun20,2012
Ocompartilhamentodearquivosbaseadonoconceitodefiliais.Cadaempresacadastradapodeternfiliaisondeosdadosinseridospor
cadafilialcomocadastrodeprodutos,cliente,etc.podemounosercompartilhadoscomasdemaisfiliais.Esterecursosomente
possveldevidoexistnciadocampoXX_FILIAL(XXrepresentaonomedoarquivo)emtodososarquivosdosistema.
OmododeoperaodecadaarquivocompartilhadoouexclusivoestdefinidonoarquivoSX2dodicionriodedados.
Casoomododeacessosejacompartilhado,quandoumnovoregistroforinserido,ocampoXX_FILIALreceberovalor(dois
caracteresembranco)eoseucontedoservisvelporqualquerusuriodequalquerfilial.
Casoomodosejaexclusivo,quandoumnovoregistroforinserido,ocamporeceberocdigoalfanumricodafilial(noexemplo
abaixo,01ou02)eservisvelapenasparaosusuriosdafilialqueinseriuomesmo.
Exemplo:
OarquivoXXestcomomododeacessodefinidocomoexclusivonoSX2,portantoseusregistrosserovisveissomenteparaafilial
queosinseriu.Videexemploabaixo:
XX_FILIAL
XX_CODIGO
XX_DESCRI
01
30
CHAVEDEFENDA
01
22
CHAVEPHILLIPS
02
21
FURADEIRABOSCH
02
12
FURADEIRABLACK&DECKER
01
31
DREMEL
01
90
SERRATICOTICO
02
48
PRUMO
02
13
SERROTE
OsusuriosdaFilial01teroacessosomenteaosdadoscujoregistropossuaocontedo01nocampoXX_FILIAL.Josusuriosda
Filial02,acessaroosdadosdosregistroscomovalor02nocampoXX_FILIAL.
NaGestodeEmpresas,existemalgumasparticularidades,quesedeveseatentarnodesenvolvimento.Paraummelhorentendimento
sobreafuncionalidadeGestodeEmpresas,segueumabreveexplicaodosnveisqueestarodisponveisnaLinhadeProdutos
MicrosigaProtheus.
GrupodeEmpresas:NvelsuperiorquecontrolaodicionriodedadosnoMicrosigaProtheus.Exemplo:SX1??0.DBFospontos
http://tdn.totvs.com/display/framework/Conceitos+de+filial+de+compartilhamentos+de+arquivos
1/5
11/12/2014
ConceitosdefilialdecompartilhamentosdearquivosFrameworkspTDN
deinterrogaoserosubstitudospelocdigodogrupo.
Empresas:Nvelqueidentificaasempresasquefazempartedogrupo,ouseja,agorapossvelutilizarmaisdeumaempresa
paraomesmodicionriodedados.
Unidadesdenegcios:Nvelqueidentificaasunidadesdenegciosdasempresas.Destaforma,possveldefinirumnvelde
controleentreasempresasefiliais.
Filial:Nvelqueidentificaasfiliaisdasunidadesdenegciosoudasempresas
Criandoestesnveis,podemosutilizardiversasempresas,unidadesdenegciosefiliaiscompartilhandoinformaesentresi.
OniconvelobrigatrioparaaLinhadeProdutosMicrosigaProtheusafilialdenomnimodoisdgitospodendochegaradozedgitos,
osdemaisnveisdeveroserutilizadosdeacordocomanecessidadedecadacliente.
Apartirdestemomento,iremosexplicarorelacionamentoentreosnveis:
NocadastrodeGrupodeEmpresas,oadministradordoSistemadeverdefiniroleiauteutilizadoparapreenchimentodaempresa,
unidadedenegciosefilial,quenodeverultrapassardozecaracteres.
Exemplo:EEUUFFFF
Noexemploacima,definimosqueasinformaesgravadasnoscamposfiliaisseroidentificadasdaseguintemaneira:
EEDoisdgitosparaaempresa
UUDoisdgitosparaaunidadedenegcios
FFFFQuatrodgitosparaafilial
Algumasregrasquedevemserseguidaspelosdesenvolvedores:
1. UtilizarasdiretivasabaixoparaqueoprogramaaceiteasalteraesdetamanhodocampoFilial:
FWGETTAMFILIAL>RetornaotamanhoutilizadoparaaFilial(SubstituioTamanhofixode2)
Exemplo:
//FWGETTAMFILIALSample.prw
AAdd(aStr,{"XU_FILIAL","C",FWGETTAMFILIAL,0})
Nestecaso,todososlugaresqueestiveremutilizandootamanho2fixodeveroseralteradosparaquesetorneflexvelamudanado
tamanho.
FWGETCODFILIAL>RetornaocdigodaFilialposicionada(SubstituiautilizaodoM0_CODFIL)
ApartirdomomentoquefordefinidoqueotamanhodocampoFILIALpodeseraumentado,otamanhofsicodocampoM0_CODFILser
12,destamaneira,parautilizarocontedocorretoavarivelFWGETCODFILIALdeverserutilizadanolugardocampoM0_CODFIL.
Exemplo:
//FWGETCODFILIALSample.prw
FWGETCODFILIAL="1234"
Filialcomtamanho4esemoscaracteresespeciaisCERTO
Paratratamentoemdicionriosdedados,nopossvelautilizaodasstringsinformadas,pois,estasubstitudasomenteemtempo
decompilao.Destaforma,emcasodedicionriodedadosdeveutilizarasseguintesfunes:
http://tdn.totvs.com/display/framework/Conceitos+de+filial+de+compartilhamentos+de+arquivos
2/5
11/12/2014
ConceitosdefilialdecompartilhamentosdearquivosFrameworkspTDN
1. FWSizeFilial()>RetornaotamanhoutilizadoparaaFilial(SubstituioTamanhofixode2)
2. FWCodFil()>RetornaocdigodaFilialposicionada(SubstituiautilizaodoM0_CODFIL)
1. TodososnovoscamposreferenteaFilialdeveroserinseridosnogrupodecampo033(Filial).
1. Paraaatualizaodecamposconcatenados,noqual,afilialfazpartedocontedodocampo,deversercriadaumafunocom
asigladomdulo+UpdFConj()queretornarumarraycomaseguinteestrutura:
aArray[n,1]=Alias
aArray[n,2]=Campo
aArray[n,3]=Tamanhooriginaldocampo(Deveserinformadootamanhopadroenodeveserconsideradooaumentooudiminuiodo
campofilial)
aArray[n,4]=Indicaaposioemqueiniciaagravaodocampofilial(Opcional.Nocasodenoexistirestenvel,ocamposerapenas
aumentado.)
aArray[n,5]=Blocodecdigoscomafunodeatualizaodosdadosaserexecutadaquandoaposio4foriguala0(zero).
Esteblocodecdigosreceberacomoparmetroasseguintesinformaes:
cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize.
Exemplodepreenchimento:
//ConcatenatedBranchUpdateSample.prw
{|cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize|FunUpdRA(cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize)}
FunctionGPEUpdFConj()
LocalaFields:={}
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,n
RealSize,nFilIni,nOldSize,nNewSize)}})
ReturnaFieds
FunctionFunUpdRA(cAlias,cField,nRealSize,nFilIni,nOldSize,nNewSize)
//Tratamentosnecessrioseatualizaodocontedonobancodedados
Return
1. Funesauxiliaresparaodesenvolvimentoepadronizaodosprogramas:
FWSizeFilialRetornaotamanhodocampoFilial
FWCodFilRetornaocdigodafilial
FWModeAccessRetornaomododecompartilhamento
FWGrpCompanyRetornaogrupo
FWAllGrpCompanyRetornaosgruposdeempresas
FWCompanyRetornaaempresa
FWAllCompanyRetornaasempresasdogrupodeempresas
FWUnitBusinessRetornaaunidadedenegcio
FWAllUnitBusinessRetornaasunidadesdenegciosparaogrupoeempresa
FWFilialRetornaafilial
http://tdn.totvs.com/display/framework/Conceitos+de+filial+de+compartilhamentos+de+arquivos
3/5
11/12/2014
ConceitosdefilialdecompartilhamentosdearquivosFrameworkspTDN
FWAllFilialRetornaasfiliaisparaogrupodeempresas
FWLoadSM0Carregaasinformaesdasfiliais
FWSM0LayoutRetornaoleiaute
FWXFilialRetornaastring
FWGrpNameRetornaonomedogrupodeempresas
FWFilialNameRetornaonomedafilial
FWFilRazSocialRetornaaRazoSocial
FWArrFilAtuRetornatodasinformaesreferenteaempresa,unidadedenegcioefilial
FWFilialStatusRetornaostatusdafilialposicionada
FWCodEmpRetornaocdigodaempresa
FWPesqSM0Exibeafiliaisdisponveisparaogrupodeempresaatual
FWUnitNameRetornaonomedaUnidadedeNegcios
FWCompanyNameRetornaonomedaempresa
FWFilExistVerificaseafilialexiste
FWEmpNameNomedaempresa
FWFilNameNomedafilial
1. OsprogramasqueutilizamavarreduranatabelaSM0(While),devemutilizarafunoFWLoadSM0()queretornaumarraycom
todasasinformaesdoSIGAMAT.
Exemplo:
//FWLoadSM0Sample.prw
aSM0:=FWLoadSM0()
FornI:=1ToLen(aSM0)
//TratamentosdesejadoscomasinformaesdoSIGAMAT
NextnI
1. Pararetornarinformaesdeumafilialespecfica,utilizeafunoFWArrFilAtu().
Exemplo:
//FWArrFilAtuSample.prw
aFil:=FWArrFilAtu(cEmpAnt,cFilAnt)
aFil:=FWArrFilAtu("04","E01U01F03")
7.OambientedeGestodePessoaljutilizavaoconceitodemultiempresas,sendoassim,parautilizaraempresadeveseverificarse
existeaempresaconfiguradaparaogrupoecasonoestejaconfiguradapegarocontedodoprpriogrupoparamanterolegado.
Exemplo:
//FWLoadSM0LegacySample.prw
aSM0:=FWLoadSM0()
FornI:=1ToLen(aSM0)
If!Empty(aSM0[nI,SM0_EMPRESA])
cEmp:=aSM0[nI,SM0_EMPRESA]
Else
cEmp:=aSM0[nI,SM0_GRPEMP]
EndIf
http://tdn.totvs.com/display/framework/Conceitos+de+filial+de+compartilhamentos+de+arquivos
4/5
11/12/2014
ConceitosdefilialdecompartilhamentosdearquivosFrameworkspTDN
//UtilizaavarivelcEmp
NextnI
Estasregrasdevemserutilizadasnosistemaecustomizaes.Destaforma,muitoimportanterevisarascustomizaesdosclientes
antesdecomearautilizaraGestodeEmpresas.
Concluindo,aGestodeEmpresas,presentenaLinhadeProdutosMicrosigaProtheus,permitecompartilharasdefiniesdoModelo
dedadosentreasempresasconfiguradasnosistema,almdeintroduziroconceitodeUnidadedeNegcio.
http://tdn.totvs.com/display/framework/Conceitos+de+filial+de+compartilhamentos+de+arquivos
5/5