- Este tópico contém 0 resposta, 1 voz e foi atualizado pela última vez 13 anos, 4 meses atrás por asgard.
-
AutorPosts
-
16 de agosto de 2011 às 4:24 pm #100349asgardParticipante
bom dia.
Estou usando o WEBUTIL_C_API, para executar funções de uma DLL de emissor de cupom fiscal e estou tento alguns problemas.
problemas:
1) executa a função e fecha a aplicação. O código que faz isso está abaixo:
FUNCTION FUN_REDUCAO_Z (impressora varchar2) RETURN pls_integer IS
DLL_FUNCAO webutil_c_api.FunctionHandle;
lv_plist webutil_c_api.ParameterList;
param1 webutil_c_api.ParameterHandle;
ret PLS_INTEGER:=0;
BEGINIF IMPRESSORA =’BEMATECH’ THEN
BEGINDLL_FUNCAO := WEBUTIL_C_API.register_function(RTRIM(LTRIM(:PARAMETER.P_CF_DIRETORIO))||’BemaFI32.dll’,’Bematech_FI_ReducaoZ’);
IF NOT WEBUTIL_C_API.ID_NULL(lv_plist) THEN
WEBUTIL_C_API.Destroy_Parameter_List(lv_plist);
END IF;lv_plist := webutil_c_api.create_parameter_list;
ret := WEBUTIL_C_API.INVOKE_INT(DLL_FUNCAO, lv_plist);
WEBUTIL_C_API.Destroy_Parameter_List(lv_plist);
—SYNCHRONIZE;
RETURN ret;
EXCEPTION
WHEN OTHERS THEN
MESSAGE(‘ERRO REDUCAO Z:’||SQLERRM);
MESSAGE(‘ERRO REDUCAO Z:’||SQLERRM);
CLEAR_MESSAGE;
END;
end if;
END;2) não estou conseguindo receber o retorno de uma variavel além de que ao executar a função, fecha a aplicação também. O código está abaixo:
FUNCTION fun_NumeroSerie_web ( NumeroSerie IN out VARCHAR2 , impressora in varchar2) RETURN PLS_INTEGER IS
DLL_FUNCAO webutil_c_api.FunctionHandle;
lv_plist webutil_c_api.ParameterList;
param1 webutil_c_api.ParameterHandle;
ret PLS_INTEGER:=0;
BEGIN
NumeroSerie:=”;
/*FOR I IN 1..15 LOOP
NumeroSerie := NumeroSerie||’ ‘;
END LOOP;*/IF IMPRESSORA =’BEMATECH’ THEN
BEGINDLL_FUNCAO := WEBUTIL_C_API.register_function(RTRIM(LTRIM(:PARAMETER.P_CF_DIRETORIO))||’BemaFI32.dll’,’Bematech_FI_NumeroSerie’);
IF NOT WEBUTIL_C_API.ID_NULL(lv_plist) THEN
WEBUTIL_C_API.Destroy_Parameter_List(lv_plist);
END IF;lv_plist := webutil_c_api.create_parameter_list;
param1 := webutil_c_api.add_parameter(lv_plist,webutil_c_api.c_char_ptr,webutil_c_api.param_out,NumeroSerie,length(NumeroSerie));ret := WEBUTIL_C_API.INVOKE_INT(DLL_FUNCAO, lv_plist);
NumeroSerie := webutil_c_api.Get_Parameter_String(lv_plist, param1);
WEBUTIL_C_API.Destroy_Parameter_List(lv_plist);
WEBUTIL_C_API.Deregister_Function(DLL_FUNCAO);SYNCHRONIZE;
RETURN ret;
EXCEPTION
WHEN OTHERS THEN
MESSAGE(‘ERRO :’||SQLERRM);
MESSAGE(‘ERRO :’||SQLERRM);
CLEAR_MESSAGE;
END;
end if;
END;Os códigos possuem alguma coisa errada???
Estou executando estas funções em cliente web. -
AutorPosts
- Você deve fazer login para responder a este tópico.