Sumario: Este artigo descreva a manipulação do de texto em transações standard. Sobre o Autor: Uderson Luis Fermino, formado em Ciências da Computação pela Faculdade de Pesquisa e Ensino IPEP, atua no mercado a 2 anos como desenvolvedor Java nas plataformas: (J2SE, J2EE e J2ME), com participação em grandes projetos envolvendo estas tecnologias. É consultor ABAP com experiências em REPORT, ALV (GRID, LIST, BLOCK, OO, TREE, HIERARQUICK), IDOC, ALE, ONLINE, SAPSCRIPT, SMARTFORM, NETWEAVER (JCO, BSP, WebDynpro). Email: Uderson@gmail.com tudo posso naquele que me fortalece (Filipenses 4:13). Página 1
Para que possa ficar fácil o entendimento usaremos a transação VA01 com exemplo, porém serve para todas as transações: Para descobrir o objeto de texto dar duplo clique sobre o EDITOR de texto: tudo posso naquele que me fortalece (Filipenses 4:13). Página 2
Editor SAPSCRIPT: tudo posso naquele que me fortalece (Filipenses 4:13). Página 3
Ir PARA: tudo posso naquele que me fortalece (Filipenses 4:13). Página 4
Informações necessárias: Para coletar as informações do texto é necessário utilizar a transação READ_TEXT ou READ_TEXT_INLINE. Exemplo: tudo posso naquele que me fortalece (Filipenses 4:13). Página 5
Gravar Texto usar função SAVE_TEXT, exemplo de automatização de texto na VA01: DATA: BEGIN OF it_usina OCCURS 0, RAZAO LIKE ysd0013_tb-razao, ENDERECO LIKE ysd0013_tb-endereco, BAIRRO CIDADE CNPJ LIKE ysd0013_tb-bairro, LIKE ysd0013_tb-cidade, LIKE ysd0013_tb-cnpj, IE LIKE ysd0013_tb-ie, END OF it_usina. DATA: BEGIN OF wa_usina. INCLUDE STRUCTURE it_usina. DATA: END OF wa_usina. IF ( sy-tcode EQ 'VA01' AND v_usina IS INITIAL ) OR ( sy-tcode EQ 'VA02' AND sy-ucomm EQ 'T/09' ). "Só exibe popup para material 112 e qtd preenchida. IF xvbap-matnr EQ '000000000000000112'. IF NOT xvbap-kwmeng IS INITIAL. "Busca usinas ativas para escritório do vendedor. tudo posso naquele que me fortalece (Filipenses 4:13). Página 6
SELECT razao endereco bairro cidade cnpj ie FROM ysd0013_tb INTO TABLE it_usina WHERE escritorio EQ vbak-vkbur AND bloqueio NE 'X'. "Monta nome das colunas t_title-text1 = 'Razão Social'. t_title-text2 = 'CNPJ'. "Monta popup com as usinas selecionadas LOOP AT it_usina. it_usina_aux-razao = it_usina-razao. it_usina_aux-cnpj = it_usina-cnpj. APPEND it_usina_aux. CLEAR it_usina_aux. ENDLOOP. "Exibe popup CALL FUNCTION 'TR_F4_HELP' EXPORTING iv_title = 'Seleção da Usina' tudo posso naquele que me fortalece (Filipenses 4:13). Página 7
is_sel_title1 = t_title iv_start_column = 10 iv_start_row = 10 TABLES it_sel_table = it_usina_aux CHANGING cv_selected_index = v_index EXCEPTIONS no_lines = 1 no_line_picked = 2 OTHERS = 3. IF sy-subrc EQ 0. "Busca Usina selecionada READ TABLE it_usina_aux INDEX v_index. IF sy-subrc IS INITIAL. READ TABLE it_usina WITH KEY cnpj = it_usina_aux-cnpj. IF sy-subrc IS INITIAL. wa_usina = it_usina. tudo posso naquele que me fortalece (Filipenses 4:13). Página 8
v_usina = 'X'. "Flag para não pedir escolha da Usina novamente. ELSE. MESSAGE s208(00) DISPLAY LIKE 'E' WITH 'USINA não selecionada! Pressione ENTER p/ escolher.'. ENDIF. ELSE. MESSAGE s208(00) DISPLAY LIKE 'E' WITH 'USINA não selecionada! Pressione ENTER p/ escolher.'. ENDIF. ELSE. MESSAGE s208(00) DISPLAY LIKE 'E' WITH 'USINA não selecionada! Pressione ENTER p/ escolher.'. ENDIF. ENDIF. ENDIF. *&---------------------------------------------------------------------* *& Form pf_write_auto_text *&---------------------------------------------------------------------* * Este form é responsavél pela geração automatica do texto tudo posso naquele que me fortalece (Filipenses 4:13). Página 9
* do cabeçalho na VA01 *----------------------------------------------------------------------* * --> p1 vbeln = numero do pedido *----------------------------------------------------------------------* * Autor: Uderson Luis Fermino 13/05/2009 *----------------------------------------------------------------------* FORM pf_write_auto_text using v_vbeln. DATA: zthead zzthead TYPE thead, TYPE thead, it_text TYPE STANDARD TABLE OF tline INITIAL SIZE 0, wa_text zlprio TYPE tline, LIKE vbap-lprio, z_check(1) TYPE C, l_name LIKE thead-tdname, z_check_text TYPE tline, z_check2(1) TYPE C, v_pt(1) TYPE C value 'P', "Idioma v_as(1) TYPE C value '*', "Todos os tipos de formatação v_memory TYPE thead-tdname value 'XXXXXXXXXX'. "Name do objeto CLEAR: zthead, zzthead, it_text, wa_text, zlprio, z_check, l_name, z_check_text, z_check2. tudo posso naquele que me fortalece (Filipenses 4:13). Página 10
"Texto que deverão aparecer na descrição wa_text-tdformat = v_as. wa_text-tdline = wa_usina-razao. APPEND wa_text TO it_text. wa_text-tdformat = v_as. wa_text TO it_text. wa_text-tdline = wa_usina-endereco. APPEND wa_text-tdformat = v_as. wa_text-tdline = wa_usina-bairro. APPEND wa_text TO it_text. wa_text-tdformat = v_as. wa_text-tdline = wa_usina-cidade. APPEND wa_text TO it_text. wa_text-tdformat = v_as. wa_text-tdline = wa_usina-cnpj. APPEND wa_text TO it_text. wa_text-tdformat = v_as. wa_text-tdline = wa_usina-ie. TO it_text. APPEND wa_text zthead-tdobject = 'VBBK'. "Objeto VBBK é apenas para o cabeçalho do pedido zthead-tdname = v_memory. "name XXXXXXXXX será trocado pelo VA01 no momento de salvar zthead-tdid = 'ZTNF'. "ID para o texto da NF zthead-tdspras = sy-langu. "Idioma IF sy-tcode EQ 'VA01'. "Quando for va01 verifica se não contém texto escritos antes da insersão CALL FUNCTION 'READ_TEXT' EXPORTING ID LANGUAGE = zthead-tdid = v_pt tudo posso naquele que me fortalece (Filipenses 4:13). Página 11
name object = v_memory = zthead-tdobject TABLES LINES = it_text EXCEPTIONS ID = 1 LANGUAGE = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. "realiza gravação CALL FUNCTION 'SAVE_TEXT' EXPORTING HEADER = zthead INSERT = 'X' TABLES LINES = it_text. "Se Va02 ELSEIF sy-tcode EQ 'VA02'. tudo posso naquele que me fortalece (Filipenses 4:13). Página 12
"Coleta l_name = v_vbeln. CALL FUNCTION 'READ_TEXT' EXPORTING ID LANGUAGE name object = zthead-tdid = v_pt = l_name = zthead-tdobject TABLES LINES = it_text EXCEPTIONS ID = 1 LANGUAGE = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. APPEND wa_text TO it_text. zzthead-tdobject = 'VBBK'. zzthead-tdname = l_name. zzthead-tdid = 'ZTNF'. tudo posso naquele que me fortalece (Filipenses 4:13). Página 13
zzthead-tdspras = sy-langu. CALL FUNCTION 'SAVE_TEXT' EXPORTING HEADER = zzthead INSERT = 'X' TABLES LINES = it_text. ENDIF. ENDFORM. tudo posso naquele que me fortalece (Filipenses 4:13). Página 14