Índice minLevel 2 exclude ÍNDICE
...
Configure y ejecute la importación
...
Configurar e Executar Importação de registros para a rotina la rutina FINA040 - Contas a Receber via Cuentas por Cobrar mediante MILE.
Informações | ||
---|---|---|
| ||
O parâmetro El parámetro MV_MULNATR deve debe estar habilitado .T. para que os registros sejam importados com sucessolos registros se importen con éxito. |
...
Para realizar
...
la importación de los datos en la rutina FINA040 - Cuentas por Cobrar utilizando el MILE, son necesarias algunas configuraciones adicionales de acuerdo con lo siguiente.
Básicamente, el MILE funciona de la siguiente manera: para cada canal
...
creado, se enviará en secuencia a la rutina en cuestión un array como parámetro, seguido del nOpc de 3 de
...
inclusión.
Ao realizar a chamada da MsExecAuto da rotina FINA040, será enviado da seguinte forma:
...
Al realizar la llamada de la MsExecAuto de la rutina FINA040, se enviará de la siguiente manera:
Si tenemos 1 canal (1 Master):
...
Si tenemos 2
...
canales:
E assim Y así por diantedelante.
Aviso | ||
---|---|---|
| ||
A rotina FINA040 possui suporte ao La rutina FINA040 tiene soporte al tipo de Adapter Função (Veja no documento de referência o item - tópico Composição do Layout - Geral Función (Vea en el documento de referencia el ítem - tópico Composición del Layout - General) |
...
...
Modelo de
...
configuración del layout del MILE:
1) Informações Informaciones sobre o el tipo de Adapter, el nombre de la función Adapter, o nome da função Adapter, a Tabela la Tabla Principal (SE1 neste en este modelo) e o y el Tipo de Layout (ImportaçãoImportación):
2) Defina
...
el formateo del archivo.
Obs.:
La ilustración de este modelo de configuración:
Ilustração deste modelo de configuração:
3) Configurando
...
el tipo Adapter
...
Función los siguientes campos no estarán disponibles para modificación:
4) Definición de los Canales: Por involucrar más de una tabla en el
...
4) Definição dos Canais: Por envolver mais de uma tabela no destino (SE1/SEV/SEZ) dos dados utilizaremos o de los datos utilizaremos el modelo de Multi-Canais Multicanales (Veja Vea Doc. ReferênciaReferencia: Exemplificando alguns Layouts). Para este modelo serão configurados se configurarán 2 canais, conforme abaixocanales, según lo siguiente:
Iremos utilizar uma Utilizaremos una User Function para execução do ejecutar el Adapter.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
User Function MileF040(lInterface, aInfos, aLayOut, aSaidas) //-- DeclaraçõesDeclaraciones - PropriedadesPropiedades Local nPosVl As Numeric Local nPosPc As Numeric Local nPosNt As Numeric Local nPosCc As Numeric Local nI As Numeric Local lNewNt As Logical Local cNat As Char Local aVetorRat As Array Local aTitulo As Array Local aRatNtCc As Array Local aRatNt As Array Local aRatCc As Array Local aLstRatCc As Array Default lInterface := .F. Default aInfos := {} Default aLayOut := {} Default aSaidas := {} //- Control Controley eseparación separaçãode doslos Rateiosprorrateos aLstRatCc := {} //-- Lista de doslos Rateiosprorrateos de CC por Naturezamodalidad aRatCc := {} //-- UmUn registro - rateioprorrateo CC aRatNt := {} //-- UmUn rateioprorrateo Naturezaorigen aRatNtCc := {} //-- Lista dosde los Rateiosprorrateos NaturezaModalidad comcon espectivosrespectivos CCs aTitulo := {} //-- DadosDatos dodel Títulotítulo aVetorRat := {} //-- Auxiliar no processamento dos rateiosen el procesamiento de los prorrateos Nt/Cc cNat := "" //-- Auxiliar en el noprocesamiento processamentode doslos rateiosprorrateos Nt lNewNt := .T. //-- Auxiliar en Auxiliarel noprocesamiento processamentode doslos rateiosprorrateos Nt nI := 0 //-- Auxiliar en noel procesamiento processamentode doslos rateiosprorrateos Nt/Cc nPosCc := 0 //-- Auxiliar en el noprocesamiento processamentode doslos rateiosprorrateos Cc nPosNt := 0 //-- Auxiliar en el noprocesamiento processamentode doslos rateiosprorrateos Nt nPosPc := 0 //-- Auxiliar en el noprocesamiento processamentode doslos rateiosprorrateos Nt/Cc nPosVl := 0 //-- Auxiliar en el noprocesamiento processamentode doslos rateiosprorrateos Nt/Cc //-- ControleControl de error errode dala rotinarutina automática Private lMsErroAuto := Empty(aSaidas) Private lAutoErrNoFile := .T. //-- Inicio dodel pocessoproceso de separaçãoseparación de dadosdatos If !Empty(aSaidas) aTitulo := {} AEVAL(aSaidas[1,4,1],{|e| AAdd(aTitulo,e)}) AAdd(aVetorRat,aSaidas[2,4]) nPosNt := ASCAN(aVetorRat[1,1],{|a| alltrim(a[1]) == "EZ_NATUREZ"}) nPosCc := ASCAN(aVetorRat[1,1],{|a| alltrim(a[1]) == "EZ_CCUSTO"}) nPosVl := ASCAN(aVetorRat[1,1],{|a| alltrim(a[1]) == "EZ_VALOR"}) nPosPc := ASCAN(aVetorRat[1,1],{|a| alltrim(a[1]) == "EZ_PERC"}) For nI := 1 To Len(aVetorRat[1]) If lNewNt //-- AdicionaAgrega Itemítem Rateioprorrateo Naturezaorigen cNat := aVetorRat[1][Ni][nPosNt][2] AAdd(aRatNt,{"EV_NATUREZ",cNat,Nil}) AAdd(aRatNt,{"EV_VALOR",0,NIL}) AAdd(aRatNt,{"EV_PERC",0,NIL}) AAdd(aRatNt,{"EV_RATEICC","1",NIL}) EndIf //-- AtualizaActualiza Valoresvalores dodel Rateioprorrateo de Naturezasorígenes aRatNt[2][2] += aVetorRat[1][Ni][nPosVl][2] aRatNt[3][2] += aVetorRat[1][Ni][nPosPc][2] //-- AdicionaAgrega ItemÍtem RateioProrrateo Centro-Custo Costo AAdd(aRatCc,aVetorRat[1][Ni][nPosNt]) AAdd(aRatCc,aVetorRat[1][Ni][nPosCc]) AAdd(aRatCc,aVetorRat[1][Ni][nPosVl]) AAdd(aLstRatCc,AClone(aRatCc)) FwFreeArray(aRatCc) aRatCc := {} //-- Verifica sesi ehes último Itemítem de dala lista geralgeneral ouo sesi ehes novonuevo itemítem de Naturezaorigen lNewNt := (nI == Len(aVetorRat[1])) .Or. (aVetorRat[1][Ni+1][nPosNt][2] <> cNat) //-- SeSi ehes novonuevo itemítem ouo oel último dade la lista, concluifinaliza ala Inclusãoinclusión dodel Rateioprorrateo dadel Naturezaorigen atualactual. If lNewNt AAdd(aRatNt,{"AUTRATEICC", aLstRatCc, Nil }) AAdd(aRatNtCc,AClone(aRatNt)) FwFreeArray(aRatNt) aRatNt := {} FwFreeArray(aRatCc) aRatCc := {} FwFreeArray(aLstRatCc) aLstRatCc := {} EndIf Next nI //-- Fim //-- ExecuçãoEjecución dodel Adapter por Rotinarutina Automáticaautomática. MsExecAuto({ |x,y,z,a| FINA040(x,y,z,a)},aClone(aTitulo),3,,aClone(aRatNtCc)) //-- TratamentoTratamiento para oel caso de erroserrores If lMsErroAuto MOSTRAERRO() EndIf EndIf Return !lMsErroAuto |
...
...
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
E1;D MG 01;GRV;MILE00001;C;NF;001;001;01;20230113;20230113;1000;1 NTCC;000003;000001;500;100 NTCC;000001;000002;500;100 E1;D MG 01;GRV;MILE00001;D;NF;001;001;01;20230113;20230113;1000;1 NTCC;000003;000001;250;50 NTCC;000003;000002;250;50 NTCC;000001;000002;500;100 E1;D MG 01;GRV;MILE00001;E;NF;001;001;01;20230113;20230113;1000;1 NTCC;000003;000001;500;100 NTCC;000001;000001;250;50 NTCC;000001;000002;250;50 |
...
...
...
view-file-file | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Card documentos | ||||
---|---|---|---|---|
|
...
...
MILE - Model Integrator Layout Engine
...