Função que serve para retornar por extenso um valor em reais e o valor em número em reais se você passar BRL para ela, caso decida por outra moeda, é só mudar de BRL para a moeda que você deseja,
Caso ela não retorne nenhuma descrição para o número informado, verificar se este valor existe na visão V_T015Z
REPORT zteste.
TABLES spell.
DATA: BEGIN OF palavra,
inteiro LIKE spell-word,
real(6),
filler(3),
decimal LIKE spell-decword,
centavos(8),
END OF palavra.
DATA: valor(8) TYPE p DECIMALS 2,
DECIMALS TYPE p,
word LIKE spell.
valor = 710 / 3.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = valor
currency = 'BRL'
filler = ' '
language = sy-langu
IMPORTING
in_words = word
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
palavra-inteiro = word-word.
IF valor > 1.
palavra-real = 'REAIS'.
ELSE.
palavra-real = 'REAL'.
ENDIF.
IF word-decword NE ' '.
palavra-filler = 'E '.
palavra-decimal = word-decword.
palavra-centavos = 'CENTAVOS'.
ENDIF.
CONDENSE palavra.
WRITE palavra.
WRITE: / valor.
sexta-feira, 26 de março de 2010
BAPI_INSPOPER_RECORDRESULTS
Estes ultimos dias precisei de utilizar a BAPI BAPI_INSPOPER_RECORDRESULTS e infelizmente achei pouca informação sobre ela, mas juntando tudo consegui resolver o problema.
Necessidade de utiliza-la foi para inserir resultados em um lote de controle especifico.
Foi necessário copiar os resultados de um lote de controle X e colar no lote de controle Y.
Processo manual para fazer o desejado.
Entrar na transação QA32, ver algum lote de controle que tenha resultados, entrar em outro lote de controle que deseja inserir resultados e ir copiando os valores de cada caracteristica de resultado no lote de controle que desejamos salvar.
Código da utilização da BAPI:
TYPES: BEGIN OF ty_qals,
prueflos TYPE qals-prueflos,
ktextlos TYPE qals-ktextlos,
werk TYPE qals-werk,
matnr TYPE qals-matnr,
herkunft TYPE qals-herkunft,
losmenge TYPE qals-losmenge,
lifnr TYPE qals-lifnr,
ekorg TYPE qals-ekorg,
ebeln TYPE qals-ebeln,
ebelp TYPE qals-ebelp,
mblnr TYPE qals-mblnr,
enstehdat TYPE qals-enstehdat,
END OF ty_qals,
BEGIN OF ty_inspointdata .
INCLUDE STRUCTURE bapi2045l4.
TYPES: END OF ty_inspointdata.
DATA: t_qals_qa01 TYPE STANDARD TABLE OF ty_qals.
DATA: t_sample_results TYPE STANDARD TABLE OF bapi2045d3,
t_bapireturn2 TYPE bapiret2,
t_ireturntable TYPE STANDARD TABLE OF bapiret2,
t_inspointdata TYPE STANDARD TABLE OF ty_inspointdata,
wa_sample_results LIKE LINE OF t_sample_results,
wa_inspointdata LIKE LINE OF t_inspointdata,
wa_return LIKE bapiret2,
wa_ireturntable LIKE LINE OF t_ireturntable,
wa_qals_qa01 LIKE LINE OF t_qals_qa01,
l_num(4) TYPE n,
l_qibpvornr TYPE qibpvornr,
t_results TYPE STANDARD TABLE OF bapi2045d2,
wa_results LIKE LINE OF t_results,
v_lote_c TYPE qals-prueflos.
l_num = 10.
l_qibpvornr = l_num.
READ TABLE t_qals_qa01 INTO wa_qals_qa01 INDEX 1.
CLEAR: t_results[],
t_inspointdata[].
* Lê resultados inseridos na QA01
CALL FUNCTION 'BAPI_INSPOPER_GETDETAIL'
EXPORTING
insplot = wa_qals_qa01-prueflos "Lote de controle ja com resultados
inspoper = l_qibpvornr
read_insppoints = 'X'
read_char_results = 'X'
char_filter_no = '1 '
char_filter_tcode = 'QE11'
insppoint_from = 0
IMPORTING
return = wa_return
TABLES
insppoints = t_inspointdata
char_results = t_results.
IF wa_return-id = 'E'.
* Caso não consiga ler os resultados, gera log de erro
ENDIF.
* Prepara para inserir resultados lote gerado no Batchinput
LOOP AT t_results INTO wa_results.
wa_results-insplot = v_lote_c. "Lote de controle que receberá resultados
MOVE-CORRESPONDING wa_results TO wa_sample_results.
MODIFY t_results FROM wa_results INDEX sy-tabix.
APPEND wa_sample_results TO t_sample_results.
ENDLOOP.
READ TABLE t_inspointdata INTO wa_inspointdata INDEX 1.
wa_inspointdata-inspoper = l_qibpvornr.
wa_inspointdata-insplot = v_lote_c. "Lote de controle que receberá resultados
wa_inspointdata-userc1 = '1'.
wa_inspointdata-userd1 = sy-datum.
wa_inspointdata-usert1 = sy-uzeit.
* Inserir resultados no lote gerado pelo batchinput
CALL FUNCTION 'BAPI_INSPOPER_RECORDRESULTS'
EXPORTING
insplot = v_lote_c "Lote de controle que receberá resultados
inspoper = l_qibpvornr "Operação (Ex. = 10)
insppointdata = wa_inspointdata
IMPORTING
return = t_bapireturn2
TABLES
char_results = t_results
sample_results = t_sample_results
returntable = t_ireturntable.
IF NOT t_ireturntable[] IS INITIAL.
READ TABLE t_ireturntable INTO wa_ireturntable WITH KEY type = 'E'.
IF sy-subrc = 0.
* Caso dê erro, gerar log de erro.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = t_bapireturn2.
ENDIF.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = t_bapireturn2.
ENDIF.
FREE: t_sample_results,
t_inspointdata.
Necessidade de utiliza-la foi para inserir resultados em um lote de controle especifico.
Foi necessário copiar os resultados de um lote de controle X e colar no lote de controle Y.
Processo manual para fazer o desejado.
Entrar na transação QA32, ver algum lote de controle que tenha resultados, entrar em outro lote de controle que deseja inserir resultados e ir copiando os valores de cada caracteristica de resultado no lote de controle que desejamos salvar.
Código da utilização da BAPI:
TYPES: BEGIN OF ty_qals,
prueflos TYPE qals-prueflos,
ktextlos TYPE qals-ktextlos,
werk TYPE qals-werk,
matnr TYPE qals-matnr,
herkunft TYPE qals-herkunft,
losmenge TYPE qals-losmenge,
lifnr TYPE qals-lifnr,
ekorg TYPE qals-ekorg,
ebeln TYPE qals-ebeln,
ebelp TYPE qals-ebelp,
mblnr TYPE qals-mblnr,
enstehdat TYPE qals-enstehdat,
END OF ty_qals,
BEGIN OF ty_inspointdata .
INCLUDE STRUCTURE bapi2045l4.
TYPES: END OF ty_inspointdata.
DATA: t_qals_qa01 TYPE STANDARD TABLE OF ty_qals.
DATA: t_sample_results TYPE STANDARD TABLE OF bapi2045d3,
t_bapireturn2 TYPE bapiret2,
t_ireturntable TYPE STANDARD TABLE OF bapiret2,
t_inspointdata TYPE STANDARD TABLE OF ty_inspointdata,
wa_sample_results LIKE LINE OF t_sample_results,
wa_inspointdata LIKE LINE OF t_inspointdata,
wa_return LIKE bapiret2,
wa_ireturntable LIKE LINE OF t_ireturntable,
wa_qals_qa01 LIKE LINE OF t_qals_qa01,
l_num(4) TYPE n,
l_qibpvornr TYPE qibpvornr,
t_results TYPE STANDARD TABLE OF bapi2045d2,
wa_results LIKE LINE OF t_results,
v_lote_c TYPE qals-prueflos.
l_num = 10.
l_qibpvornr = l_num.
READ TABLE t_qals_qa01 INTO wa_qals_qa01 INDEX 1.
CLEAR: t_results[],
t_inspointdata[].
* Lê resultados inseridos na QA01
CALL FUNCTION 'BAPI_INSPOPER_GETDETAIL'
EXPORTING
insplot = wa_qals_qa01-prueflos "Lote de controle ja com resultados
inspoper = l_qibpvornr
read_insppoints = 'X'
read_char_results = 'X'
char_filter_no = '1 '
char_filter_tcode = 'QE11'
insppoint_from = 0
IMPORTING
return = wa_return
TABLES
insppoints = t_inspointdata
char_results = t_results.
IF wa_return-id = 'E'.
* Caso não consiga ler os resultados, gera log de erro
ENDIF.
* Prepara para inserir resultados lote gerado no Batchinput
LOOP AT t_results INTO wa_results.
wa_results-insplot = v_lote_c. "Lote de controle que receberá resultados
MOVE-CORRESPONDING wa_results TO wa_sample_results.
MODIFY t_results FROM wa_results INDEX sy-tabix.
APPEND wa_sample_results TO t_sample_results.
ENDLOOP.
READ TABLE t_inspointdata INTO wa_inspointdata INDEX 1.
wa_inspointdata-inspoper = l_qibpvornr.
wa_inspointdata-insplot = v_lote_c. "Lote de controle que receberá resultados
wa_inspointdata-userc1 = '1'.
wa_inspointdata-userd1 = sy-datum.
wa_inspointdata-usert1 = sy-uzeit.
* Inserir resultados no lote gerado pelo batchinput
CALL FUNCTION 'BAPI_INSPOPER_RECORDRESULTS'
EXPORTING
insplot = v_lote_c "Lote de controle que receberá resultados
inspoper = l_qibpvornr "Operação (Ex. = 10)
insppointdata = wa_inspointdata
IMPORTING
return = t_bapireturn2
TABLES
char_results = t_results
sample_results = t_sample_results
returntable = t_ireturntable.
IF NOT t_ireturntable[] IS INITIAL.
READ TABLE t_ireturntable INTO wa_ireturntable WITH KEY type = 'E'.
IF sy-subrc = 0.
* Caso dê erro, gerar log de erro.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = t_bapireturn2.
ENDIF.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = t_bapireturn2.
ENDIF.
FREE: t_sample_results,
t_inspointdata.
Assinar:
Postagens (Atom)