× Linguagem de Programação ADVPL

Perguntas Variáveis

Mais
10 anos 4 meses atrás #23343 por LMafra
Variáveis foi criado por LMafra
Bom dia à todos, estou desenvolvendo uma rotina para importação de pedidos de venda ( EDI ) de um arquivo txt para o Protheus 11 utilizando a rotina MSExecAuto. Acontece que quando eu coloco os valores numéricos separando por ponto (.) a parte inteira da decimal, o sistema não aceita e reporta um erro de valor inválido, quando eu separo com vírgula (,) ele aceita normalmente. Até aí tudo bem, o problema é que eu gero uma tabela temporária que recebe os valores do arquivo texto e quando aponto os campos desta tabela, o mesmo erro ocorre como se os campos estivessem separados por ponto (.)

O campo em questão é o C_EDIPED->QTDADE, como demonstrado nas linhas de código abaixo, ele recebe o valor numérico de 720

Aadd(_aItemPV,{ { "C6_FILIAL" , XFILIAL("SC6") , Nil },; // Filial do pedido
{ "C6_ITEM" , StrZero(_nConta,2) , Nil },; // Número do Ítem
{ "C6_PRODUTO", SB1->B1_COD , Nil },; // Codigo do Produto
{ "C6_DESCRI" , SB1->B1_DESC , Nil },; // Descrição do Produto
{ "C6_UNSVEN" , 40,0000 , Nil },; // Quantidade Pedida
{ "C6_QTDVEN" , C_EDIPED->QTDADE , Nil },; // Quantidade Vendida _nQtdVen
{ "C6_PRCVEN" , 10,0000 , Nil },;
{ "C6_VALOR" , 7200,0000 , Nil },; // Preco de Lista
{ "C6_SEGUN" , SB1->B1_SEGUM , Nil },; // Unidade de Medida de venda
{ "C6_UM" , SB1->B1_UM , Nil },; // Unidade de Medida Primar
{ "C6_TES" , SB1->B1_TS , Nil },; // Tipo de Entrada/Saida do Item
{ "C6_CLI" , _cCliente , Nil },; // Cliente

Alguém poderia me esclarecer o que pode estar acontecendo e como proceder neste caso ?

Desde já agradeço pela ajuda.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23346 por THALESCOTR
Respondido por THALESCOTR no tópico Variáveis
Bom dia Luciano,

quando você adiciona o item no array _aItemPv, coloque o PesqPict, que ele irá converter o valor para o que o campo necessita.
Exemplo:

{ "C6_PRCVEN" , Transform(seuvalor,PesqPict("SC6","C6_PRCVEN")) , Nil }

Outra Obs:
Não passe no array o valor total do item, deixe que o sistema calcule sozinho, isso evita erros!
Remova a linha:
{ "C6_VALOR" , 7200,0000 , Nil },; // Preco de Lista


Att
Thales

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23348 por LMafra
Respondido por LMafra no tópico Variáveis
Bom dia Thales, eu desconhecia este comando, porém o campo tem que ser numérico, com o transform o resultado vem como alfa, consequentemente o Protheus me retorna um erro de valor inválido. Se adiciono a função VAL, ela coloca como separador o ponto (.) que não é aceito também.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23349 por kanaamlrr
Respondido por kanaamlrr no tópico Variáveis
Luciano, poste o erro que está sendo apresentado.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23350 por LMafra
Respondido por LMafra no tópico Variáveis
Boa tarde Kanaãm e obrigado pela atenção, não sei o porque disto acontecer visto que o exemplo que vejo de outros desenvolvedores sem o separador de inteiro/decimal é o ponto (.) só com o meu Protheus é que é exigido a vírgula como separador de decimais. o arquivo denominado Primeiro Erro EDI é a tela do primeiro erro mostrado, porém este erro não impede a gravação do pedido, já o segundo impede a gravação.

Desde já agradeço pela ajuda.
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 4 meses atrás #23352 por kanaamlrr
Respondido por kanaamlrr no tópico Variáveis
O primeiro erro você consegue arrumar corrigindo o inicializador padrão do campo.
Deve ter alguma expressão errada.
Quanto ao problema da quantidade, quando você coloca o ponto como separador, qual a mensagem apresentada?
o 720 você está passando como numérico ou caracter?

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.089 segundos
Joomla templates by a4joomla