Histórico da Página
Devido a adequação da quantidade de dígitos dos insumos para 10 dígitos foi alterado o segmento de envio de serviços ao à rotina AC1006D.
O código foi alterado para receber os dados do serviços através de uma temp table tabela temporária e retornar uma temp table uma tabela temporária para facilitar as alterações no envio e recebimento tráfego de dados pelo AC1006D.
Será Para o funcionamento correto, será necessário adaptar programas específicos que realizam a chamada do AC1006Ddesta rotina (acp/ac1006d.p).
Segue a baixo a definição da temp-table e conversão do segmento para temp-table. . Esta definição das tabelas temporárias é apenas informativa dos campos disponíveis, nas rotinas específicas deverá ser utilizado a include "{acp/ac1006d.i}"
Na prática, o cliente deverá substituir a criação do segmento pela criação da temp tmp-servicos-req, atribuindo os valores do segmento nas respectivas posições da temp conforme exemplo a seguir.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{acp/ac1006d.i}
/*
def temp-table tmp-servicos-req | ||||
Bloco de código | ||||
| ||||
/*01*/ def input param lg-mens-tela-par no-undo field asin-ordem log no-undo. /*02*/ def input param lg-simulacao-paras int /* Não utilizado */ field tp-servico as log as char format "x(12)" field tp-insumo no-undo. /*03*/ def input param r-maquclin-par as char format "99" field qt-servico as recid as char no-undo. /*04*/ def input param in-tipo-proces-parformat "999" field qt-servico-dec as char format "x(01)999" field no-undo. /*05*/ def input param segmento-req-parcd-servico as char format "x(8000)99999999" no-undo. /* Segmento com os dados do documento (sem o serviço) */ /*06*/ def input param id-aplicativo-parfield cd-tipo-percentual as char format "99" field vl-servico like paramint.id-aplicativo no-undo. /*07*/ def output param segmento-res-par as char format "x(9)" field cd-prest-exec as char format "x(800015)" field no-undo. /* Segmento com retorno dos dados do documento (sem o serviço) */ /*08*/ def output param cd-erro-sistema-par as charcd-prest-divisao as char format "x(15)" field cd-grau-part as char no-undo. /*09*/ def input param lg-trata-comb-nao-perm-wac-par as intformat "x(2)" field cd-via-acesso as char field no-undo. /*10*/ def output param ds-erro-sistema-ptu-parcd-tecnica as char init "" as char field no-undo. /*11*/ def output param ds-erro-comb-nao-perm-parcd-servico-generico as char format "99999999" field nm-prof-exec as char as char format "x(70)" field no-undo. /*12*/ def input param table for tmp-servicos-req. /* Solicitação de serviços, substitui parte do segmento */ /*13*/ def output param table for tmp-docusos. /* Retorno temp igual a docusos para acesso em caso de simulação */ /*14*/ def output param table for tmp-procusos. /* Retorno temp igual a procusos para acesso em caso de simulação */ /*15*/ def output param table for tmp-insuusos. /* Retorno temp igual a insuusos para acesso em caso de simulação */ /*16*/ def output param table for tmp-retorno-serv. /* Retorno do resultado do registro por movimento */ |
Na prática, o cliente deverá substituir a criação do segmento pela criação da temp tmp-servicos-req, atribuindo os valores do segmento nas respectivas posições da temp conforme exemplo a seguir.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{acp/ac1006d.i} /* def temp-table tmp-servicos-req no-undo field in-ordemcons-prof-compl as char field num-cons-compl as char field uf-compl as char field cd-cbos-compl as char field nr-cpf-compl as char field hr-inicial as char field hr-final as int /* Não utilizado */ field tp-servico as char format "x(12)" field tpdt-insumo realizacao as char format "99"date field qtcd-servicovariacao as char format "999"int field qtcd-servico-decprincipal-pacote as char /* Serviço principal utilizado no pacote, caso deseje utilizar um procedimento alternativo asao charinvés format "999"do principal */ field cdcr-servicosolicitacao as char /* U - asUrgência E char- format "99999999"Eletivo */ field cd-tipo-percentualtp-comb as char format "99" field vlds-servico as char format "x(9)". def temp-table tmp-retorno-serv no-undo field cdid-prest-execautoriza as char field in-servico as char field tp-servico as char format "x(15)" field cd-prest-divisaoservico as int64 field qt-ser-per as dec field vl-part-cob as char format "x(15)"dec field cd-grauerro-partsistema as char field cd-pacote as char. */ def var in-prox-pos as int no-undo. def var nr-ver-tra-imp as char format "x(2)" field cd-via-acesso no-undo. def var segmento-req-par as char no-undo. assign nr-ver-tra-imp = substr(segmento-req-par, 81, 2). case nr-ver-tra-imp: when "22" then assign in-prox-pos = as3399. char field cd-tecnica when "24" then assign in-prox-pos = 3393. when "25" then assign in-prox-pos = 3409. end case. repeat: as char field cd-servico-generico as char format "99999999" field nm-prof-exec as char format "x(70)" field cons-prof-compl as char field num-cons-compl as char field uf-complcase nr-ver-tra-imp: when "22" or when "25" then assign in-prox-pos = in-prox-pos + 29. as char field cd-cbos-compl as char field nr-cpf-compl as char when field hr-inicial "24" then assign in-prox-pos = in-prox-pos + 35. as char field hr-final as char field dt-realizacao end case. create tmp-servicos-req. as/* date fieldCampo cd-variacaoda temp as int field cd-servico-principal-pacote as char *//* ServiçoPosição principalque utilizadoa noinformação pacote,estava casono deseje utilizar um procedimento alternativo ao invés do principalsegmento *//* Descrição */ field cr-solicitacaoassign tmp-servicos-req.tp-servico as char /* U - Urgência E - Eletivo */ field tp-comb = substr(segmento-req-par,in-prox-pos + 01, 1) //I - Insumos, P - Procedimentos e A - Pacote tmp-servicos-req.tp-insumo as char field ds-servico = substr(segmento-req-par,in-prox-pos + 02, 2) //Tipo insumo as char. def temptmp-table tmp-retorno-serv no-undo servicos-req.qt-servico field id-autoriza as char field in-servico as char field tp-servico as char field cd-servico as int64 field qt-ser-per as dec field vl-part-cob as dec field cd-erro-sistema as char field cd-pacote as char. */ def var = substr(segmento-req-par,in-prox-pos + 12,5) //Quantidade inteira do serviço (Ex: Qtd: 12,5, este campo fica 12) tmp-servicos-req.qt-servico-dec = substr(segmento-req-par,in-prox-pos as int no-undo. def var nr-ver-tra-imp as char no-undo. def var segmento-req-par as char no-undo. assign nr-ver-tra-imp = substr(segmento-req-par, 81, 2). case nr-ver-tra-imp: when "22" then assign in-prox-pos = 3399. when "24" then assign in-prox-pos = 3393. when "25" then assign + 17,3) //Quantidade fracionada do serviço (Ex: Qtd: 12,5, este campo fica 5) tmp-servicos-req.cd-servico = substr(segmento-req-par,in-prox-pos = 3409. end case. repeat: + 04, 8) //Código do serviço, 8 dígitos para procedimentos ou pacotes e 10 dígitos para insumos. No caso de 10 dígitos é possível dar um assign no campo com os 10 dígitos. tmp-servicos-req.cd-tipo-percentual = substr(segmento-req-par,in-prox-pos + 34,2) //45-Fator Red/Acr tmp-servicos-req.vl-servico case nr-ver-tra-imp: when "22" or when "25" then assign in-prox-pos = in-prox-pos + 29.= substr(segmento-req-par,in-prox-pos + 20,14) //Valor do serviço informado em tela sem a virgula (Ex: Valor 100,10, este campo fica 10010) tmp-servicos-req.cd-prest-exec = substr(segmento-req-par,in-prox-pos + 51,15) //Unidade do prestador exec (4 dígitos) + código do prestador exec (8 dígitos) + código especialidade do prestador exec (3 dígitos) when "24" then assign intmp-prox-pos = in-prox-pos + 35.servicos-req.cd-prest-divisao = substr(segmento-req-par,in-prox-pos + 36,15) //Unidade do prestador divisão (4 dígitos) + código do prestador divisão (8 dígitos) + código especialidade do prestador divisão (3 dígitos) tmp-servicos-req.cd-grau-part end case. create= tmpsubstr(segmento-servicos-req. req-par,in-prox-pos + 152,2) /*/Grau de participação do membro Campode daequipe temp tmp-servicos-req.cd-via-acesso = substr(segmento-req-par,in-prox-pos + 149,2) *//*Via Posiçãode queacesso a informação estava no segmento *//* Descrição */ assign tmp-servicos-req.tpcd-servicotecnica = substr(segmento-req-par,in-prox-pos + 01151, 1) //ITécnica -utilizada Insumos, P - Procedimentos e A - Pacote tmp-servicos-req.tp-insumo nm-prof-exec = substr(segmento-req-par,in-prox-pos + 0267, 270) //Tipo insumoNome do profissional pf executante tmp-servicos-req.qt-servico cons-prof-compl = substr(segmento-req-par,in-prox-pos + 12154,57) //QuantidadeSigla inteira do serviçoconselho (Ex: Qtd: 12,5, este campo fica 12)do profissional pf executante tmp-servicos-req.qtnum-servicocons-deccompl = substr(segmento-req-par,in-prox-pos + 17161,315) //Quantidade fracionadaNumero do serviçoconselho (Ex: Qtd: 12,5, este campo fica 5)do profissional pf executante tmp-servicos-req.cduf-servicocompl = substr(segmento-req-par,in-prox-pos + 04176, 82) //CódigoNumero do serviço,conselho 8do dígitosprofissional para procedimentos ou pacotes e 10 dígitos para insumospf executante tmp-servicos-req.cd-tipo-percentualcbos-compl = substr(segmento-req-par,in-prox-pos + 34178,27) //45-Fator Red/Acr CBOS do profissional pf executante tmp-servicos-req.vl-serviconr-cpf-compl = /* Não = substr(segmento-req-par,in-prox-pos + 20,14) //Valor do serviço informado em tela sem a virgula (Ex: Valor 100,10, este campo fica 10010)era passado por segmento */ //Cpf do conselho do profissional pf executante tmp-servicos-req.cd-prest-exechr-inicial = substr(segmento-req-par,in-prox-pos + 51145,154) //Unidade do prestador exec (4 dígitos) + código do prestador exec (8 dígitos) + código especialidade do prestador exec (3 dígitosHora inicial do registro (Ex: 12:57, este campo fica 1257) tmp-servicos-req.cd-prest-divisaohr-final = substr(segmento-req-par,in-prox-pos + 36145,154) //UnidadeHora final do prestadorregistro divisão (4 dígitos) + código do prestador divisão (8 dígitos) + código especialidade do prestador divisão (3 dígitos) (Ex: 12:57, este campo fica 1257) tmp-servicos-req.cddt-grau-partrealizacao = substr(segmento-req-par,in-prox-pos + 152141,28) //Grau de participação do membro de equipeData do registro (Ex: 25/05/2021, este campo fica 25052021) tmp-servicos-req.cd-via-acessovariacao = substr(segmento-req-par,in-prox-pos + 149189,24) //Via de acessoCódigo da variação do procedimento tmp-servicos-req.cdcr-tecnicasolicitacao = substr(segmento-req-par,in-prox-pos + 15166,1) //TécnicaCaráter da utilizadasolicitação tmp-servicos-req.nm-prof-exectp-comb = substr(segmento-req-par,in-prox-pos + 67193,706) //NomeTipo doda profissionalcombinação pfnão executantepermitida /*tmp-servicos-req.consds-prof-complservico = substr(segmento-req-par,in-prox-pos + 154,7) //Sigla= do conselhoApenas doversão profissional pf executante >= 12.1.33 tmp-servicos-req.num-cons-compl */ //Descrição do insumo genérico realizado, utilizado para controlar a quantidade utilizada =corretamente substr(segmentomov-reqinsu.char-par,in-prox-pos + 161,15) //Numero do conselho do profissional pf executante21, insuusos.char-21, insuguia.char-4) if nr-ver-tra-imp = "22" or tmpnr-servicosver-req.uftra-complimp = "24" or nr-ver-tra-imp = "25" then = substr(segmento-req-par,assign in-prox-pos = in-prox-pos + 176,2) //Numero do conselho do profissional pf executante 165. end. //Retorno if length (LinhaDeVolta-par) < 174 then leave. assign in-prox-pos-aux = 174. repeat: create tmp-servicosretorno-req.cd-cbos-complserv. assign tmp-retorno-serv.id-autoriza = substr(segmento-reqLinhaDeVolta-par,in-prox-pos-aux +, 178,71) //CBOSStatus do profissional pf executanteregistro tmp-servicosretorno-reqserv.nrin-cpf-complservico = substr(LinhaDeVolta-par,in-prox-pos-aux + 1, 1) //I - Insumos, P - =Procedimentos /* Não era passado por segmento tmp-retorno-serv.tp-servico */ //Cpf do conselho do profissional pf executante= substr(LinhaDeVolta-par,in-prox-pos-aux + 3,2) //Tipo insumo tmp-servicosretorno-reqserv.hrcd-inicial servico = substr(segmento-reqLinhaDeVolta-par,in-prox-pos-aux + 1455,4 8) //HoraServiço, inicialé doretornado registrocom (Ex: 12:57, este campo fica 1257)8 ou 10 dígitos dependendo do tipo tmp-servicosretorno-reqserv.hr-final qt-ser-per = substr(segmentoLinhaDeVolta-req-par,in-prox-pos-aux + 14513,48) //Hora finalQuantidade do registroserviço (Ex: 12:57Qtd: 12,5, este campo fica 125712500) tmp-servicosretorno-reqserv.dt-realizacao vl-part-cob = substr(segmentoLinhaDeVolta-req-par,in-prox-pos-aux + 14121,814) //Data do registroValor da participação no prestador (Ex: 25/05/2021100,15, este campo fica com 2505202110015) tmp-servicosretorno-reqserv.cd-variacao -erro-sistema = substr(segmento-reqLinhaDeVolta-par,in-prox-pos-aux + 18935, 4) //CódigoMensagem dade variaçãoerro dono procedimentosistema tmp-servicosretorno-reqserv.crcd-solicitacaopacote = substr(segmentoLinhaDeVolta-req-parpar,in-prox-pos-aux + 6647,1) //Caráter da solicitação 8).//Código do pacote do procedimento ou insumo assign tmpin-servicosprox-req.tppos-combaux = in-prox-pos-aux + 56. = substr(segmento-req-par,in-prox-pos + 193,6) //Tipo da combinação não permitida /*tmp-servicos-req.ds-servico = Apenas versão >= 12.1.33 */ //Descrição do insumo genérico realizado, utilizado para controlar a quantidade utilizada corretamente (mov-insu.char-21, insuusos.char-21, insuguia.char-4) end. if nr-ver-tra-imp = "22" or nr-ver-tra-imp = "24" or nr-ver-tra-imp = "25" then assign |
Após deve ser feito a chamada para o AC1006D passando os paramento conforme definição a seguir.
Bloco de código | ||
---|---|---|
| ||
/*01*/ def input param lg-mens-tela-par as log no-undo.
/*02*/ def input param lg-simulacao-par as log no-undo.
/*03*/ def input param r-maquclin-par as recid no-undo.
/*04*/ def input param in-tipo-proces-par as char format "x(01)" no-undo.
/*05*/ def input param segmento-req-par as char format "x(8000)" no-undo. /* Segmento com os dados do documento (sem o serviço) */
/*06*/ def input param id-aplicativo-par like paramint.id-aplicativo no-undo.
/*07*/ def output param segmento-res-par as char format "x(8000)" no-undo. /* Segmento com retorno dos dados do documento (sem o serviço) */
/*08*/ def output param cd-erro-sistema-par as char no-undo.
/*09*/ def input param lg-trata-comb-nao-perm-wac-par as int no-undo.
/*10*/ def output param ds-erro-sistema-ptu-par as char init "" no-undo.
/*11*/ def output param ds-erro-comb-nao-perm-par as char no-undo.
/*12*/ def input param table for tmp-servicos-req. /* Solicitação de serviços, substitui parte do segmento */
/*13*/ def output param table for tmp-docusos. /* Retorno temp igual a docusos para acesso em caso de simulação */
/*14*/ def output param table for tmp-procusos. /* Retorno temp igual a procusos para acesso em caso de simulação */
/*15*/ def output param table for tmp-insuusos. /* Retorno temp igual a insuusos para acesso em caso de simulação */
/*16*/ def output param table for tmp-retorno-serv. /* Retorno do resultado do registro por movimento */ |
Outros programas:
AC1000: Adicionado 4 parâmetros igual aos 4 últimos do AC1006D (Parâmetro 11 ao 15 do exemplo abaixo). Deve-se enviar da mesma forma que descrito a cima utilizando temp-table, porém, somente é necessário alterar o específico caso o segmento seja enviado com o código 80190260 no substr(segmento-req-par,56,08).
Bloco de código | ||
---|---|---|
| ||
/*01*/ def input param lg-mens-tela-par as log no-undo.
/*02*/ def input param in-tipo-proces-par as char format "x(01)" no-undo.
/*03*/ def input param nm-arq-ent-par as char no-undo.
/*04*/ def input param segmento-req-par as char format "x(8000)" no-undo.
/*05*/ def input param nm-diret-entra-par as char format "x(100)" no-undo.
/*06*/ def input param nm-diret-saida-par as char format "x(100)" no-undo.
/*07*/ def input param id-aplicativo-par as char format "x(20)" no-undo.
/*08*/ def output param segmento-res-par as char format "x(8000)" no-undo.
/*09*/ def output param cd-erro-sistema-par as char format "x(04)" no-undo.
/*10*/ def input param lg-trata-comb-nao-perm-wac-par as int no-undo.
/*11*/ def input param table for tmp-servicos-req.
/*12*/ def output param table for tmp-docusos.
/*13*/ def output param table for tmp-procusos.
/*14*/ def output param table for tmp-insuusos.
/*15*/ def output param table for tmp-retorno-serv. |
Programas AC1000D até AC1000Z, ACURASERIOUS e ACURASIEMENS - Não foi passado os parâmetros novos pois os fontes foram considerados descontinuados.
AC1008D
Para o funcionamento correto, será necessário adaptar programas específicos que realizam a chamada desta rotina (acp/ac1008d.p).
Segue a baixo a definição da temp-table e conversão do segmento para temp-table. Esta definição das tabelas temporárias é apenas informativa dos campos disponíveis, nas rotinas específicas deverá ser utilizado a include "{acp/ac1008d.i}"
Na prática, o cliente deverá substituir a criação do segmento pela criação da temp tmp-servicos-req, atribuindo os valores do segmento nas respectivas posições da temp conforme exemplo a seguir.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{acp/ac1008d.i} /* def temp-table tmp-servicos-req no-undo field in-ordem as int /* Não utilizado */ field tp-servico as char format "x(12)" field tp-insumo as char format "99" field qt-servico as char format "999" field qt-servico-dec as char format "999" field cd-servico as char format "99999999" field cd-tipo-percentual as char format "99" field vl-servico as char format "x(9)" field cd-prest-exec as char format "x(15)" field cd-prest-divisao as char format "x(15)" field cd-grau-part as char format "x(2)" field cd-via-acesso as char field cd-tecnica as char field cd-servico-generico as char format "99999999" field nm-prof-exec as char format "x(70)" field cons-prof-compl as char field num-cons-compl as char field uf-compl as char field cd-cbos-compl as char field nr-cpf-compl as char field hr-inicial as char field hr-final as char field dt-realizacao as date field cd-variacao as int field cd-servico-principal-pacote as char /* Serviço principal utilizado no pacote, caso deseje utilizar um procedimento alternativo ao invés do principal */ field cr-solicitacao as char /* U - Urgência E - Eletivo */ field cd-unid-medida as char /* Removido na 12.1.33 */ field tp-comb as char field tp-dente-regiao as char field qt-us as dec field id-face-dente as char format "x(25)". def temp-table tmp-retorno-serv no-undo field id-autoriza as char field in-servico as char field tp-servico as char field cd-servico as int64 field qt-ser-per as dec field vl-part-cob as dec field cd-pacote as char. */ def var in-prox-pos as int no-undo. def var nr-ver-tra-imp as char no-undo. def var segmento-req-par as char no-undo. assign nr-ver-tra-imp = substr(segmento-req-par, 81, 2). assign in-prox-pos = 554. if nr-ver-tra-imp = "04" then in-prox-pos = 551. repeat: assign in-prox-pos = in-prox-pos + 29. create tmp-servicos-req. /* Campo da temp *//* Posição que a informação estava no segmento *//* Descrição */ assign tmp-servicos-req.tp-servico = substr(segmento-req-par,in-prox-pos + 01, 1) //I - Insumos, P - Procedimentos e A - Pacote tmp-servicos-req.tp-insumo = substr(segmento-req-par,in-prox-pos + 02, 2) //Tipo insumo tmp-servicos-req.qt-servico = substr(segmento-req-par,in-prox-pos + 12,5) //Quantidade inteira do serviço (Ex: Qtd: 12,5, este campo fica 12) tmp-servicos-req.qt-servico-dec = substr(segmento-req-par,in-prox-pos + 17,3) //Quantidade fracionada do serviço (Ex: Qtd: 12,5, este campo fica 5) tmp-servicos-req.cd-servico = substr(segmento-req-par,in-prox-pos + 04, 8) //Código do serviço, 8 dígitos para procedimentos ou pacotes e 10 dígitos para insumos. No caso de 10 dígitos é possível dar um assign no campo com os 10 dígitos. tmp-servicos-req.vl-servico = substr(segmento-req-par,in-prox-pos + 20,14) //Valor do serviço informado em tela sem a virgula (Ex: Valor 100,10, este campo fica 10010) tmp-servicos-req.cd-prest-exec = substr(segmento-req-par,in-prox-pos + 49,15) //Unidade do prestador exec (4 dígitos) + código do prestador exec (8 dígitos) + código especialidade do prestador exec (3 dígitos) tmp-servicos-req.nm-prof-exec = substr(segmento-req-par,in-prox-pos + 77,70) //Nome do profissional pf executante tmp-servicos-req.cons-prof-compl = substr(segmento-req-par,in-prox-pos + 208,5) //Sigla do conselho do profissional pf executante tmp-servicos-req.num-cons-compl = substr(segmento-req-par,in-prox-pos + 147,15) //Numero do conselho do profissional pf executante tmp-servicos-req.uf-compl = substr(segmento-req-par,in-prox-pos + 162,2) //Numero do conselho do profissional pf executante tmp-servicos-req.cd-cbos-compl = substr(segmento-req-par,in-prox-pos + 164,7) //CBOS do profissional pf executante tmp-servicos-req.hr-inicial = substr(segmento-req-par,in-prox-pos + 73,4) //Hora inicial do registro (Ex: 12:57, este campo fica 1257) tmp-servicos-req.hr-final = substr(segmento-req-par,in-prox-pos + 73,4) //Hora final do registro (Ex: 12:57, este campo fica 1257) tmp-servicos-req.dt-realizacao = substr(segmento-req-par,in-prox-pos + 65,8) //Data do registro (Ex: 25/05/2021, este campo fica 25052021) tmp-servicos-req.tp-comb = substr(segmento-req-par,in-prox-pos + 212,6) //Tipo da combinação não permitida tmp-servicos-req.tp-dente-regiao = substr(segmento-req-par,in-prox-pos + 171,4) //Tipo de dente regiao tmp-servicos-req.qt-us = substr(segmento-req-par,in-prox-pos + 200,7) //Qt us tmp-servicos-req.id-face-dente = substr(segmento-req-par,in-prox-pos + 175,25). //Id face dente assign in-prox-pos = in-prox-pos + 219. end. //Retorno if length (LinhaDeVolta-par) < 225 then leave. assign in-prox-pos-aux = 225. repeat: create tmp-retorno-serv. assign tmp-retorno-serv.id-autoriza = substr(LinhaDeVolta-par,in-prox-pos-aux , 1) //Status do registro tmp-retorno-serv.in-servico = substr(LinhaDeVolta-par,in-prox-pos-aux + 1, 1) //I - Insumos, P - Procedimentos tmp-retorno-serv.tp-servico = substr(LinhaDeVolta-par,in-prox-pos-aux + 3,2) //Tipo insumo tmp-retorno-serv.cd-servico = substr(LinhaDeVolta-par,in-prox-pos-aux + 5, 8) //Serviço, é retornado com 8 ou 10 dígitos dependendo do tipo tmp-retorno-serv.qt-ser-per = substr(LinhaDeVolta-par,in-prox-pos-aux + 13,8) //Quantidade do serviço (Ex: Qtd: 12,5, este campo fica 12500) tmp-retorno-serv.vl-part-cob in-prox-pos = in-prox-pos + 165. end. //Retorno if length (LinhaDeVolta-par) < 174 then leave. assign in-prox-pos-aux = 174. repeat: create tmp-retorno-serv. assign tmp-retorno-serv.id-autoriza = substr(LinhaDeVolta-par,in-prox-pos-aux + 21, 1) //Status do registro14) //Valor da participação no prestador (Ex: 100,15, este campo fica com 10015) tmp-retorno-serv.incd-servicopacote = substr(LinhaDeVolta-par,in-prox-pos-aux + 135, 18) //ICodigo - Insumos, P - Procedimentos do pacote assign tmpin-retorno-serv.tp-servico = substr(LinhaDeVolta-par,prox-pos-aux = in-prox-pos-aux + 3,2)56. //Tipo insumo tmp-retorno-serv.cd-servico = substr(LinhaDeVolta-par,in-prox-pos-aux + 5, 8) //Serviço, é retornado com 8 ou 10 dígitos dependendo do tipo tmp-retorno-serv.qt-ser-per = substr(LinhaDeVolta-par,in-prox-pos-aux + 13,8) //Quantidade do serviço (Ex: Qtd: 12,5, este campo fica 12500) tmp-retorno-serv.vl-part-cob end. |
Após deve ser feito a chamada para o AC1008D passando os paramento conforme definição a seguir.
Bloco de código | ||
---|---|---|
| ||
/*01*/def input param lg-mens-tela-par as log = substr(LinhaDeVolta-par,in-prox-pos-aux + 21,14) //Valor da participação no prestador (Ex: 100,15, este campo fica com 10015) no-undo. /*02*/def input param lg-simulacao-par as log tmp-retorno-serv.cd-erro-sistema = substr(LinhaDeVolta-par,in-prox-pos-aux + 35, 4) //Mensagem de erro no sistema no-undo. /*03*/def input param tmpr-retorno-serv.cd-pacotemaquclin-par = substr(LinhaDeVolta-par,in-prox-pos-aux + 47, 8).//Código do pacote do procedimento ou insumo as recid no-undo. /*04*/def input assignparam in-proxtipo-posproces-auxpar = in-prox-pos-aux + 56. as char format "x(01)" no-undo. /*05*/def input param segmento-req-par as char format "x(8000)" no-undo. /* Segmento com os dados do documento (sem o serviço) */ /*06*/def input param id-aplicativo-par like paramint.id-aplicativo no-undo. /*07*/def output param segmento-res-par as char format "x(8000)" no-undo. /* Segmento com retorno dos dados do documento (sem o serviço) */ /*08*/def output param cd-erro-sistema-par as char end. no-undo. /*09*/def input param lg-trata-comb-nao-perm-wac-par as int no-undo. |