Dicas ABAPFunções Úteis: CLAF_CLASSIFICATION_OF_OBJECT Retorna a classificação do material CONVERSION_EXIT_CGCBR_INPUT Efetua a validação do código de CGC e CPF através do DC CONVERSION_EXIT_CUNIT_OUTPUT Converte um valor entre unidades sem necessitar do material CONVERSION_EXIT_PARVW_OUTPUT Faz a conversão de saída para o tipo de parceiro de cliente CONVERT_TO_LOCAL_CURRENCY Conversão de moeda COPO_POPUP_TO_DISPLAY_TEXTLIST Popup para exibir várias linhas de texto DATE_GET_WEEK Retorna a semana em que uma data se encontra DAY_IN_WEEK Retorna o dia da semana de uma data. Segunda = 1, Terça = 2, ..., Domingo = 7 DETERMINE_DUE_DATE Calcula a data de vencimento de uma duplicata. Fonte: \template\data_vencto.txt DETERMINE_TXJCD_EXTERNALLY Determina o código de domicílio fiscal cliente DYNP_VALUES_READ Captura o valor de um parâmetro para teste no caso de value-request. Exemplo: fontes/ultrafertil/templates/dynp_values_read FI_F4_ZTERM Chama matchcode de condição de pagamento FIMA_DAYS_AND_MONTHS_AND_YEARS Transformar a diferença de duas datas em meses GRAPH_MATRIX Gera uma window com graficos baseado em tabelas internas. HR_BR_CONVERT_ACCENTS Retira os acentos de uma string de texto MESSAGE_PREPARE Monta uma mensagem com seus parametros NUMBER_GET_ NEXT Retorna um novo número de uma number range. Grupo de função SNR3 PERIOD_AND_DATE_CONVERT_OUTPUT Converte uma data para o formato de saída passando período = 1. Para converter para o formato de gravação chamar a INPUT POPUP_TO_CONFIRM Message box mais completo POPUP_TO_CONFIRM_STEP Exibe box popup para confirmação de processamento POPUP_TO_CONFIRM_WITH_MESSAGE Exibe box popup para confirmação de processamento POPUP_TO_DECIDE_LIST Apresenta uma tela com um radiobutton para cada linha de uma tabela interna passada como parâmetro. Permite escolher um dentre os itens da lista. POSTAL_CODE_CHECK Efetua a validação do CEP RP_LAST_DAY_OF_MONTHS Retorna último dia do mês RP_PRINT_RT Imprime uma tabela cluster da folha RS_LIST_SELECTION_TABLE Display items. Para impressão dos parâmetros de seleção de um report. RS_REFRESH_FROM_SELECTOPTIONS Reads the values for the currently running report. Para impressão dos parâmetros de seleção de um report. RS_VARIANT_CONTENTS Retorna o conteúdo de uma variante SAPGUI_PROGRESS_INDICATOR Barra de indicação de progresso de processamento SET_PRINT_PARAMETERS Imprime os parâmetros de seleção de um report SPELL_AMOUNT Retorna Valor por extenso SXPG_CALL_SYSTEM Executa comandos externos no servidor UNIT_CONVERSION_SIMPLE Converte um valor para uma unidade de medida Call function 'UNIT_CONVERSION_SIMPLE' exporting input = valor atual round_sign = tipo de arredondamento ‘X’ unit_in = unidade atual unit_out = unidade nova importing output = valor convertido WS_FILE_DELETE Exclui um arquivo da estação de trabalho Transações Úteis: TRANSACAO DESCRICAO 0FPM002 Importar Figura para ALV e Visualizador de Imagens CMOD Ativar uma EXIT ou criar um projeto(Menu, Customer e Screen) FB02 Modifica documento Contábil FBL1N Partidas indiv.fornecedores FBRA Anula compensação NACW Busca relacao programa/sapscript OAER / OAOR Importar uma figura *.gif OBB8 Configuração da condicao de pagamento PA03 Registro de Controle Folha Pgto PC_PAYRESUL T Exibição dos result. da Folha Pgto PC00_M37_CA LC Executa a Folha Pgto PE01 Esquema da Folha Pgto PE03 Feature - árvore de decisão PE04 Atualização das Funções/Oper. da Folha Pgto PFCG Perfil PU01 Eliminar resultado de cálculo da folha de pagamento S_BCE_680012 86 Conversão SARP Abre arvore de relatórios SCC1 Cópia entre mandantes no mesmo ambiente conforme request SCOT Administração de fax, internet... SD11 Modelagem de Dados SE01 Exibir log de transporte de request p/ versões até 4.0 SE03 Exibir log de transporte de request p/ versões superior a 4.0 SE09 Exibir Request - Desenv prog. {RELEASE p/ liberar} SE10 Exibir Request - Cust. {RELEASE p/ liberar} SE11 Dictionary SE16 Visualização de Tabelas - Formato ALV List. SE16N Visualização de Tabelas - Formato ALV Grid. SE18 Cria BADI SE30 Verifica Performance SE36 LOGICAL DATABASE SE37 Function Builder SE38 Editor ABAP SE43 Atualização de Menu de Área SE56 Atualizar Tabela SE63 Tradução de programas SE71 SAPSCRIPT SE78 SAPSCRIPT-adm de gráficos SE80 Repository(OnLine, Grupo de Função, classe, obj. autorizacao, classe mensagem, menus area, etc..) SE93 Criar Transacao SERP Configura Árvore de Relatórios SHDB Mapeamento SM04 Exibe informações de todos os usuários/tarefa SM12 Exibe todos os objetos/tabelas bloqueados SM13 Verifica erro na inclusao/alteracao de algum reg SM30 Entrada de Dados em Tabelas SM33 Visao de Pastas/verifica se o job já rodou SM35 Rodar Pasta gerada em Batch Input(Gerenciamento de Pastas) SM36 Criar Jobs SM37 Exibir todos os Jobs (Síntese e Alteração) SM50 Exibe informações de todos os usuários SM59 Verificar conexão do notes... Emails SMX Visualizar apenas seus Jobs (Monitorar) SNOTE Assistente de Aplicação Notas SNRO Intervalo de numeração so00 Email SOSB Email -conf SOST Relação dos emails enviados ou não SP01 Exibir o SPOOL de impressão SP02 Exibir o SPOOL de impressão SPAD Configurar Impressora SPAU Exibir objetos AD modificados SQ03 Query ST05 Debug Standers ST22 Lista dos Dumps ocorridos SU01 Atualizar cadastro do usuario SU21 Objeto de Autorização SU53 Exibição dos valores de controle autorização Modelo de Comentário Report: *----------------------------------------------------------------------* * * * Empresa...: Nome da Empresa - Unidade de Negocios - SAP * * Cliente...: XXXXXXXXXXXXXXX * * Programa..: XXXXXXXXXXXXXXX * * Tipo......: REPORT * * Módulo....: Nome do modulo * * Transação.: XXXXXXXXXXX * * Descrição.: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. * Objetivo..: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX * * * * * Autores...: Nome do ABAP * * Alterações: * * Data | Autor | Request | Descrição * * 08/06/2007 | Nome do Abap | ********* | Programa Inicial * * * *----------------------------------------------------------------------* * * REPORT ******** LINE-SIZE 100 LINE-COUNT 65 NO STANDARD PAGE HEADING MESSAGE-ID XXX. ************************************************************************ * TABELAS TRANSPARANTES * ************************************************************************ * TABLES: ************************************************************************ * INCLUDE * ************************************************************************ * INCLUDE. ************************************************************************ * TELA DE SELEÇÃO * ************************************************************************ * SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-b01. * SELECT-OPTIONS: * PARAMETERS: * SELECTION-SCREEN END OF BLOCK b1. ************************************************************************ * VALIDAÇÃO DA TELA DE SELEÇÃO * ************************************************************************ * AT SELECTION-SCREEN. ************************************************************************ * INICIALIZAÇÃO * ************************************************************************ * INITIALIZATION. ************************************************************************ * INICIO DA ROTINA PRINCIPAL * ************************************************************************ * START-OF-SELECTION. ************************************************************************ * FIM DA ROTINA PRINCIPAL * ************************************************************************ * END-OF-SELECTION. ************************************************************************ * SUB-ROTINAS * ************************************************************************ ************************************************************************ * Form zf_seleciona *----------------------------------------------------------------------* * ************************************************************************ ************************************************************************ * CABEÇALHO DA LISTA PRINCIPAL * ************************************************************************ * TOP-OF-PAGE.. Constantes e Variáveis Globais * * para XXXXXXXXXXXXXXX.: Nome da Empresa * * Programa.: FI * * Descrição.....: INCLUDE * * Módulo..... ************************************************************************ * CABEÇALHO DA LISTA SECUNDÁRIA * ************************************************************************ * TOP-OF-PAGE DURING LINE-SELECTION. * * Autor....: Nome do ABAP * * Alterações: * * Data | Autor | Request | Descrição * * 08/06/2007 | Nome do ABAP | ********** | Dicionário de Dados * * * *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Include ************ * *&---------------------------------------------------------------------* ************************************************************************ * TYPE-POOLS * ************************************************************************ * TYPE-POOLS: ************************************************************************ * CONSTANTES * ************************************************************************ * CONSTANTS: ************************************************************************ * TIPOS * ************************************************************************ * TYPES: ************************************************************************ * TABELAS INTERNAS * ************************************************************************ * DATA: ************************************************************************ * WORK AREA * ************************************************************************ * DATA: ************************************************************************ * VARIÁVEIS * ************************************************************************ * DATA: ************************************************************************ * RANGES * ************************************************************************ * RANGES: .. Modelo Comentário TOP INCLUDE: *----------------------------------------------------------------------* * * * Empresa..: ZIFI_REC_VAR * * Tipo.: Tipos.. com.sapgenie.sapworld.br www.br/apostilas.ig.ig.sdn.br/sol.com.br .abapfans.com.marceloperine.hpg.com/abap/index.Sites úteis sobre ABAP: http://www.com.sites.br/Abap/ http://www.uol.htm https://www.hpg.com http://www.sap.codigofonte.com/irj/sdn http://help.com.sap.htm Apostilas Microsiga: stelling.html http://www. MCHA * * p_class = Classe no sistema de classificacao do objeto * * p_create = Flag indicador para gerar numero objeto interno * * p_clobj = Numero interno do objeto no sistema de classificacao * *----------------------------------------------------------------------* form f_bapi_objcl_get_key_of_object using p_matnr like bapibatchkey-material p_plant like bapibatchkey-plant p_batch like bapibatchkey-batch p_table like bapi1003_key-objecttable p_class like bapi1003_key-classtype p_create like bapi1003_key-flag changing p_clobj like bapi1003_key-object_guid. it_operation like bapi1190_opr_c occurs 0 with header line. data :lc_objectname like bapi1003_key-object. ex. GERA NUMERO DE OBJETO INTERNO PARA SISTEMA DE CLASSIFICAÇÃO * BAPI para gerar numero de objeto interno para sistema de classificacao * p_matnr = Material a ser classificado * * p_plant = Centro do material * * p_batch = Lote do material * * p_table = Tabela de referencia ao objeto. lc_objectname+0(18) = p_matnr. MARA.DICAS ABAP BAPI´S CRIAR LOTE MODIFICAR LOTE call function 'BAPI_BATCH_CHANGE' exporting material = p_material batch = p_batch plant = p_plant batchattributes = st_atributes batchattributesx = st_atributesx batchcontrolfields = st_batchctrl internalnumbercom = st_bncom extension1 = st_bncomz tables return = t_return. GERA ROTEIRO STANDARD data: it_task like bapi1190_tsk_c occurs 0 with header line. call function 'BAPI_REFSETOFOPERATIONS_CREATE' * EXPORTING * TESTRUN = '' * PROFILE = * BOMUSAGE = * APPLICATION = importing group = p_group groupcounter = p_count tables task = t_task * MATERIALTASKALLOCATION = operation = t_oper * SUBOPERATION = * COMPONENTALLOCATION = * PRODUCTIONRESOURCE = * INSPCHARACTERISTIC = * TEXTALLOCATION = * TEXT = return = it_return. . it_return like bapiret2 occurs 0 with header line. lc_objectname+22(10) = p_batch. call function 'BAPI_OBJCL_GET_KEY_OF_OBJECT' exporting objectname = lc_objectname objecttable = p_table classtype = p_class create_missing_key = p_create importing clobjectkeyout = p_clobj tables return = it_bapiret2.lc_objectname+18(4) = p_plant. it_bapiret2. check not p_clobj is initial. ESTORNA SAIDA DE MATERIAL EM ESTOQUE call function 'BAPI_GOODSMVT_CANCEL' exporting materialdocument = p_materialdocument matdocumentyear = p_matdocumentyear * GOODSMVT_PSTNG_DATE = * GOODSMVT_PR_UNAME = importing goodsmvt_headret = t_bapi2017_gm_head_ret tables return = it_bapiret2 * GOODSMVT_MATDOCITEM = . perform f_bapi_commit_work. endform. BAIXA DE MATERIAL EM ESTOQUE call function 'BAPI_GOODSMVT_CREATE' exporting goodsmvt_header = t_bapi2017_gm_head_01 goodsmvt_code = p_goddsmvt_code . it_bapiret2[]. " f_bapi_objcl_get_key_of_object CRIAR ORDEM DE VENDA call function 'BAPI_SALESORDER_CREATEFROMDAT2' exporting * SALESDOCUMENTIN = order_header_in = st_bapisdhd1 order_header_inx = st_bapisdhd1x * SENDER = * BINARY_RELATIONSHIPTYPE = * INT_NUMBER_ASSIGNMENT = * BEHAVE_WHEN_ERROR = * LOGIC_SWITCH = testrun = p_testrun convert = p_convert importing salesdocument = p_salesdocument tables return = pt_return order_items_in = it_bapisditm order_items_inx = it_bapisditmx order_partners = it_bapiparnr order_schedules_in = it_bapischdl order_schedules_inx = it_bapischdlx order_conditions_in = it_bapicond * ORDER_CFGS_REF = * ORDER_CFGS_INST = * ORDER_CFGS_PART_OF = * ORDER_CFGS_VALUE = * ORDER_CFGS_BLOB = * ORDER_CFGS_VK = * ORDER_CFGS_REFINST = * ORDER_CCARD = * ORDER_TEXT = * ORDER_KEYS = extensionin = it_bapiparex * PARTNERADDRESSES = . clear: p_clobj. it_bapi_pp_timeticket-exec_start_date = p_dt_ini. = p_scrap. it_bapi_pp_timeticket-plant = p_werks. it_bapi_pp_timeticket-exec_fin_time = p_hr_fim. it_bapi_pp_timeticket-exec_start_time = p_hr_inicio. . it_bapi_pp_timeticket-conf_quan_unit = p_unidade. it_bapi_pp_timeticket-operation = p_operacao. it_bapi_pp_timeticket-work_cntr = p_centro_trab. OBTEM CARACTERISTICAS PARA OBJETO E CLASSE * Limpar característica reserva de estoque do lote vc_clobjectkey = p_objek. clear it_values_char-value_char. MODIFICA CARACTERISTICAS PARA OBJETO /CLASSE call function 'BAPI_OBJCL_CHANGE_KEY' exporting clobjectkey = vc_clobjectkey classnum = vc_classnum tables allocvaluesnum_new = it_values_num allocvalueschar_new = it_values_char allocvaluescurr_new = it_values_curr return = it_return. endif. it_bapi_pp_timeticket-yield it_bapi_pp_timeticket-scrap = p_metragem. CRIA CARACTERISTICAS PARA UM OBJETO call function 'BAPI_OBJCL_CREATE_KEY' exporting clobjectkey_new = p_clobje classnum_new = p_class * STATUS = '1' * STANDARDCLASS = * CHANGENUMBER = * KEYDATE = SY-DATUM tables allocvaluesnum = t_values_num allocvalueschar = t_values_char * ALLOCVALUESCURR = return = it_bapiret2. it_bapi_pp_timeticket-fin_conf = p_fin_conf. if sy-subrc eq 0. read table it_values_char with key charact = c_reserva. modify it_values_char index sy-tabix.testrun = p_testrun importing materialdocument = p_doc_mat tables goodsmvt_item = t_bapi2017_gm_item_create return = it_bapiret2. ALTERA STATUS DE UMA OP it_bapi_pp_timeticket-orderid = p_op. it_bapi_pp_timeticket-postg_date = p_dt_ini. call function 'BAPI_OBJCL_GETDETAIL_KEY' exporting clobjectkey = vc_clobjectkey classnum = vc_classnum keydate = sy-datum importing status = vc_status standardclass = vc_stdclass tables allocvaluesnum = it_values_num allocvalueschar = it_values_char allocvaluescurr = it_values_curr return = it_return. vc_classnum = c_classe_lote. it_bapi_pp_timeticket-exec_fin_date = p_dt_fim. COMMIT E ROLLBACK PARA BAPI call function 'BAPI_TRANSACTION_COMMIT'. call function 'BAPI_TRANSACTION_ROLLBACK'. append it_bapi_pp_timeticket. . MODIFICA ORDEM DE VENDA call function 'BAPI_SALESORDER_CHANGE' exporting salesdocument = p_salesdocument order_header_in = p_header order_header_inx = p_header_inx simulation = p_testrun tables order_item_in = pt_order_item_in order_item_inx = pt_order_item_inx partners = pt_partners partnerchanges = pt_partnerchanges partneraddresses = pt_partneraddresses schedule_lines = pt_schedule_lines schedule_linesx = pt_schedule_linesx order_text = pt_order_text conditions_in = pt_conditions_in conditions_inx = pt_conditions_inx extensionin = pt_extensionin return = pt_return. call function 'BAPI_PRODORDCONF_CREATE_TT' * EXPORTING * POST_WRONG_ENTRIES = '0' * TESTRUN = * IMPORTING * RETURN = tables timetickets = it_bapi_pp_timeticket * GOODSMOVEMENTS = * LINK_CONF_GOODSMOV = detail_return = it_bapi_coru_return. INCLUI CONTRATO call function 'BAPI_CONTRACT_CREATEFROMDATA' exporting contract_header_in = st_bapisdhd1 contract_header_inx = st_bapisdhd1x testrun = p_testrun convert = p_convert importing salesdocument = p_salesdocument tables return = pt_return contract_items_in = it_bapisditm contract_items_inx = it_bapisditmx contract_partners = it_bapiparnr contract_conditions_in = it_bapicond extensionin = it_bapiparex. it_bapi_pp_timeticket-conf_acti_unit1 = p_acti_unit1. MODIFICA CONTRATO call function 'BAPI_CUSTOMERCONTRACT_CHANGE' exporting salesdocument = p_salesdocument contract_header_in = p_header contract_header_inx = p_header_inx tables return = pt_return contract_item_in = pt_item contract_item_inx = pt_item_inx partners = pt_partners partnerchanges = pt_partnerchanges.it_bapi_pp_timeticket-conf_activity1 = p_activity. it_sval-tabname = 'CRHD' ** Tabela it_sval-fieldname = 'WERKS'. DIALOG BOX (pode ser configurada) call function 'POPUP_FOR_INTERACTION' exporting headline = 'Estorno processamento 1' text1 = 'Lançamento selecionado será estornado' text2 = 'Deseja realmente estorná-lo?' ticon = 'I' button_1 = 'Cancelar' button_2 = 'Confirmar' importing button_pressed = vc_button. ** Nome do Campo it_sval-fieldtext = 'Centro'. leave screen. . if vl_resp ne 'J'. set screen 0. DIALOG BOX(CANCEL – SIM – NÃO) call function 'POPUP_TO_CONFIRM_STEP' exporting defaultoption = 'N' textline1 = text-m04 textline2 = text-m05 titel = text-m03 importing answer = vc_resp exceptions others = 01.FUNÇÕES DIALOG DIALOG BOX – ENTRADA DE VALORES DATA it_sval like sval occurs 0 with header line. endif. ** Descrição do campo append it_sval. call function 'POPUP_GET_VALUES' exporting no_value_check = ' ' popup_title = text-t11 start_column = '5' start_row = '5' importing returncode = vc_valor_digitado tables fields = it_sval exceptions error_in_fields = 1 others = 2. DIALOG BOX PARA CONFIRMAÇÃO DE UM PROCESSO call function 'POPUP_TO_CONFIRM_WITH_MESSAGE' exporting defaultoption = 'Y' diagnosetext1 = vl_diagnosetext1 textline1 = 'Deseja continuar ?' titel = 'Consistência Centro de Trabalho' start_column = 25 start_row =6 cancel_display = 'X' importing answer = vl_resp. OBTEM STATUS DE UM OBJETO(CODIGO) data: it_jstat like jstat occurs 0 with header line. call function 'STATUS_READ' exporting client = sy-mandt objnr = vc_objnr only_active = 'X' tables status = it_jstat exceptions object_not_found = 1 others = 2.. J_1B_BRANCH_READ OBTEM HISTORICO DO PAGAMENTO call function 'CUSTOMER_PAYMENT_HISTORY' exporting i_kkber = it_bsad_abert-kkber i_kunnr = it_bsad_abert-kunnr tables t_knb4 = it_t_knb4.. if sy-subrc eq 0. OBTEM STATUS DE UM OBJETO (TEXTO) * Recuperar status da OP call function 'STATUS_TEXT_EDIT' exporting client = sy-mandt objnr = vc_objnr only_active = 'X' spras = 'P' importing line = vc_status_op exceptions object_not_found = 1 others = 2. call function 'READ_TEXT' exporting client = sy-mandt id = 'ZCTS' language = sy-langu name = vc_tdname object = 'VBBK' tables lines = it_texto_ordem. OBTER VALORES DE UM DOMINIO call function 'DD_DOMVALUES_GET' exporting domname = p_nome langu = sy-langu tables dd07v_tab = it_values exceptions wrong_textflag = 1 . OBTEM TEXTO DA ORDEM * Verifica se existe texto da ordem select single tdobject into stxh-tdobject from stxh where tdobject = 'VBBK' and tdname = it_vbak-vbeln and tdid = 'ZCTS' and tdspras = sy-langu.FUNÇÕES – Obter dados OBTEM DADOS DA EMPRESA CNPJ. pendencias-CFLAG) WHERE dtart = 'MD' AND matnr = v_matnr AND plwrk = centro AND plscn = 0. call function 'SD_ORDER_CREDIT_RELEASE' exporting vbeln = p_vbeln exceptions error_message = 4. OBTEM DADOS MRP * Obtem Dados de cabeçalho .documento MRP clear pendencias-matnr. . SELECT single matnr dtnum cflag FROM mdkp INTO (pendencias-matnr. OBTEM DADOS DO MATERIAL call function 'MARA_READ' exporting i_matnr = p_matnr i_sprache = sy-langu importing e_makt = p_makt e_mara = p_mara exceptions no_entry = 1 others = 2. OBTEM STATUS DA ORDEM call function 'STATUS_TEXT_EDIT' exporting client = sy-mandt objnr = t_aufk-objnr only_active = 'X' spras = sy-langu importing line = lc_status exceptions object_not_found = 1 others = 2. CALL FUNCTION 'READ_MRP_LIST' EXPORTING IDTNUM = pendencias-dtnum ICFLAG = pendencias-CFLAG TABLES MDTBX = it_MDTB VERIFICA STATUS DA ORDEM VENDA call function 'SD_CREDIT_REFRESH' exporting check_no_refresh = c_off.others = 2. VERSAO PRODUÇÃO call function 'CP_DB_PLAS_READ' exporting plnal = t_mkal-plnal plnnr = t_mkal-plnnr plnty = t_mkal-plnty tables planas = t_paux exceptions no_records = 1 others = 2. pendencias-dtnum. .*.*.RETORNA IMPRESSORA DEFAULT DO WINDOWS 'RSPO_FRONTEND_PRINTERS_FOR_DEV' FUNÇÕES – Arquivos Informando a data e um numero 6 devolve o sexto dia util DAY_ATTRIBUTES_GET com os parametros FACTORY_CALENDAR = '01' HOLIDAY_CALENDAR = '01' DATE_FROM = DATE_TO = LANGUAGE = Será retornada uma tabela interna com todos os dias solicitados. call function 'KD_GET_FILENAME_ON_F4' changing file_name = p_arq.' mode = 'O' title = 'Seleção do Arquivo' importing filename = p_namfil exceptions inv_winsys =1 no_batch =2 selection_cancel = 3 selection_error = 4 others = 5.*. LEITURA DE ARQ E ATAUALIZA TABELA INTERNA call function 'WS_UPLOAD' exporting filename = p_arq tables data_tab = it_arq exceptions conversion_error =1 file_open_error =2 file_read_error =3 invalid_type =4 no_batch =5 unknown_error =6 invalid_table_width =7 gui_refuse_filetransfer = 8 customer_error =9 others = 10.txt' def_path = 'C:\Temp\' mask = '. LEITURA ARQUIVO call function 'WS_FILENAME_GET' exporting def_filename = 'log_ZSD03.*. VERIFICA SE ARQUIVO EXISTE call function 'WS_QUERY' exporting filename = p_arq query = 'FE' importing return = vc_return exceptions inv_query =1 no_batch =2 frontend_error = 3 others = 4. Olhe a coluna HOLIDAY (feriado) e FREEDAY (fim de semana). SELEÇÃO ARQUIVO * Busca nome de arquivo at selection-screen on value-request for p_arq. LOGON DO USUÁRIO data: lc_answer like sy-ucomm. l_tc_new_top_line = 1. field-symbols <lines> type i. * yes. else. data l_tc_name like feld-name. call function 'SUSR_USER_SURFACE_PASSWORD' importing password = lc_senha okcode = lc_answer. lc_senha like xu400-newcode.STATUS DOS PROCEDIMENTOS perform send_gui(saplcozf) using text-010. * is no line filled? if <tc>-lines = 0.. *-END OF LOCAL DATA----------------------------------------------------* assign (p_tc_name) to <tc>.. . 'LIST_DOWNLOAD' OUTRAS FUNÇÕES MENSAGEM NO RODAPÉ . Ver WS_DOWNLOAD. field-symbols <tc> type cxtab_control. data l_tc_field_name like feld-name. data l_tc_lines_name like feld-name.. call function 'SCROLLING_IN_TABLE' exporting entry_act = <tc>-top_line entry_from =1 entry_to = <tc>-lines last_page_full = 'X' loops = <lines> ok_code = p_ok overlapping = 'X' * * * . SCROLLING IN TABLE CONTROL ( Geralemnte Utilizado 'P--' or 'P-' or 'P+' or 'P++'. p_tc_name *-BEGIN OF LOCAL DATA--------------------------------------------------* data l_tc_new_top_line type i. assign (l_tc_lines_name) to <lines>.GERA ARQ TXT A PARTIR TABELA INTERNA call function 'DOWNLOAD' exporting filename = lc_name filetype = 'ASC' filemask_text = lc_mask filetype_no_change = 'X' tables data_tab = it_log exceptions invalid_filesize =1 invalid_table_width =2 invalid_type =3 no_batch =4 unknown_error =5 gui_refuse_filetransfer = 6 others = 7. ..) form compute_scrolling_in_tc using p_ok. * no. * get looplines of TableControl concatenate 'G_' p_tc_name '_LINES' into l_tc_lines_name. endif. LISTA CAMPOS DA TELA call function 'GET_DYNPRO_LIST' exporting dyname = ls_prog_name dynumb = ln_dynp_num tables dynpro_list = it_dynpro_list. if syst-subrc = 0. call function 'ALV_LIST_SORTING_DEFINE' exporting i_control = ls_control it_fieldcatalog = lt_fieldcat . endform. message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif. endif. * * * " compute_scrolling_in_tc CONVERTER MOEDA ESTRANGEIRA call function 'CONVERT_TO_LOCAL_CURRENCY' exporting client = sy-mandt date = sy-datum foreign_amount = p_foreign_amount foreign_currency = 'USD' local_currency = 'BRL' rate =0 type_of_rate = 'M' read_tcurr = 'X' importing local_amount = vp_local_amount exceptions no_rate_found = 1 overflow =2 no_factors_found = 3 no_spread_found = 4 derived_2_times = 5 others = 6. * get actual tc and column get cursor field l_tc_field_name area l_tc_name. if sy-subrc ne 0. if l_tc_name = p_tc_name. * set actual column set cursor field l_tc_field_name line 1.importing entry_new = l_tc_new_top_line exceptions no_entry_or_page_act = 01 no_entry_to = 02 no_ok_code_or_page_go = 03 others = 99. endif. * set the new top line <tc>-top_line = l_tc_new_top_line. OBTEM NUMERO(ATINN) DA CLASSIFICAÇÃO * BUSCA O NÚMERO DO ATINN DE ACABAMENTO call function 'CONVERSION_EXIT_ATINN_INPUT' exporting input = 'TIPODEACABAMENTO' importing output = vc_atinn_qualidade. htm OBTEM PROXIMO NUMERO NO INTERVALO DE NUMERAÇÃO call function 'NUMBER_GET_NEXT' exporting nr_range_nr = '01' object = 'ZNR_BANC' importing number = p_num_ord exceptions interval_not_found =1 number_range_not_intern = 2 object_not_found =3 quantity_is_0 =4 quantity_is_not_1 =5 interval_overflow =6 others = 7. message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. if sy-subrc <> 0.gov. e anos. ROTINA CONVERSÃO MOEDA call function 'CONVERT_CURRENCY_BY_RATE' exporting . OBTEM QUANTIDADE DE MESES ENTRE 2 DATAS call function 'MONTHS_BETWEEN_TWO_DATES' exporting i_datum_bis = ult i_datum_von = pri * i_kz_incl_bis = i_kz_incl_bis importing e_monate = vc_quantmeses.i_type = p_listtype changing ct_sort = p_rt_sort[] exceptions no_change =1 others = 2. vc pode somar dias. MESES.sef..abapfans..) .br/sol/sol0036. Tanto pode somar como subtrair ( Campo Signum com + ou ..htm http://www..com.sc. CALCULO DIGITO VERIFICADOR INSCRIÇÃO ESTADUAL http://www. Nesta funcao. meses. ANOS DE UMA DATA Veja a função RP_CALC_DATE_IN_INTERVAL . ENCONTRA PROXIMO DIA UTIL call function 'DATE_CONVERT_TO_FACTORYDATE' exporting correct_option = '+' date = it_bsid-dt_venc factory_calendar_id = 'ZF' importing date = vd_dat_retorno * FACTORYDATE = * WORKINGDAY_INDICATOR = exceptions calendar_buffer_not_loadable =1 correct_option_invalid =2 date_after_range =3 date_before_range =4 date_invalid =5 factory_calendar_not_found =6 others =7 . SOMA/SUB DIA. endif.br/consulta/rotinacritica/rotinaie/calcdigverificIE.hpg.. OBTER ULTIMO DIA DO MES if p_data is initial. RETORNA DATA POR EXTENSO DAY_ATTRIBUTES_GET RETIRA CARACTERES ESPECIAIS DE UMA ROTINA call function 'HR_BR_CONVERT_ACCENTS' exporting in_text = it_lfa1-name1 sw_strip_dot = ' ' importing out_text = it_lfa1-name1. it_fields-fieldname = 'VTEXT'. EXIBE VALORES TELA TIPO MATCH CODE * Denominação it_fields-tabname = 'TSPAT'. endif. . it_fields-selectflag = ' '. if sy-subrc <> 0. clear sy-subrc. append it_fields. call function 'HELP_VALUES_GET_WITH_TABLE' exporting titel = 'Setor de Atividade' importing select_value = p_spart-low tables fields = it_fields valuetab = it_valuetab. call function 'RP_LAST_DAY_OF_MONTHS' exporting day_in = sy-datum importing last_day_of_month = p_data exceptions day_in_no_date = 1 others = 2. endif. if sy-subrc <> 0.from_amount = vl_valor from_currency = it_tcurr-fcurr from_factor = it_tcurf-ffact rate = it_tcurr-ukurs to_currency = p_waers to_factor = it_tcurf-tfact importing to_amount = vl_conv exceptions no_rate_found = 1 others = 2. RECUPERA DESCRIÇÃO DA MENSAGEM call function 'RH_MESSAGE_GET' exporting sprsl = p_msgspra arbgb = p_msgid msgnr = p_msgnr msgv1 ='' msgv2 ='' msgv3 ='' msgv4 ='' importing msgtext = lc_texto exceptions message_not_found = 1 others = 2. MONTAR TABLE CONTROL data: it_nametab like dfies occurs 0 with header line. data: it_record like it_line occurs 0 with header line. matnr like vbap-matnr. vtweg like vbak-vtweg. * Campos especiais delete it_fieldif where fieldname = 'UMSKS'. vbeln like vbap-vbeln. spart like vbap-spart. idtip_ins(7). posnr like vbap-posnr. it_nametab-datatype = p_datatype. end of it_line. it_nametab-fieldname = p_fieldname. it_nametab-reptext = p_reptext.message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif. it_nametab-tabname = p_tabname. it_nametab-keyflag = p_keyflag. it_fieldif-no_fky_chk = 'X'. zztip_ins like vbap-zztip_ins. idreg_555(7). it_nametab-offset = p_offset. idreg_abc(7). it_fieldif-fieldname = p_fieldname. check. append it_fieldif. name1 like kna1-name1. it_fieldif-tabname = p_tabname. delete it_fieldif where fieldname = 'LFREL'. clear it_fieldif. bmeng like vbep-bmeng. it_nametab-position = p_position. it_fieldif-fixed_col = 'X'. zznum_pto like vbap-zznum_pto. it_nametab-leng = p_leng. it_nametab-intlen = p_leng. it_fieldif-icon = 'X'. . it_fieldif-checkbt = 'X'. it_fieldif-no_input = 'X'. it_fieldif-fieldname = 'UMSKS'. it_record[] = it_line[]. append it_nametab. append it_fieldif. clear it_fieldif. it_fieldif-tabname = 'VBEP'. * Itens do TableControl data: begin of it_line occurs 0. clear it_fieldif. clear it_nametab. it_fieldif-fixed_col = ' '. idnum_pto(7). zzreg_555 like vbap-zzreg_555. it_fieldif-fieldname = 'LFREL'. it_fieldif-fixed_col = 'X'. it_fieldif-tabname = 'BSID'. it_fieldif like field_dif occurs 0 with header line. it_nametab-inttype = p_inttype. append it_fieldif. it_nametab-outputlen = p_outleng. zzreg_abc like vbap-zzreg_abc. endcase. when 'CANC'. ENVIA MENSAGEM PARA DETERMINADO USUÁRIO call function 'TH_POPUP' exporting client = sy-mandt user = it_bloqueio-uname message = vc_message message_len = 999 cut_blanks = c_on exceptions user_not_found = 1 others = 2. modify it_line transporting check where check = c_on. endloop. endloop. loop at it_line where check = c_on. stop. it_line-check = c_on. . it_fields-fieldname = 'VBELN'. SO_NEW_DOCUMENT_SEND_API1 Envia Mensagem para for a SAP . loop at it_record where check = c_off. modify it_line index sy-tabix transporting check.Outlook ENVIA MENSAGEM COM LISTA DE VALORES * Montar estrutura it_fields-tabname = 'VBAK'. modify it_vbap transporting idprc where vbeln = it_line-vbeln and posnr = it_line-posnr. it_vbap-idprc = c_criv. * Identificar linhas selecionadas it_line-check = c_off. when 'OK'. case sy-ucomm.call function 'STC1_POPUP_WITH_TABLE_CONTROL' exporting header = text-022 tabname ='' display_only ='' endless ='' * DISPLAY_TOGGLE = * SORT_FORBIDDEN = * MODIFY_CHECK = * INSERT_CHECK = * DELETE_CHECK = * MODIFY_DISP_FIELD = * NO_INSERT = * NO_DELETE = * NO_MOVE = * NO_UNDO = no_button ='' x_start = 22 y_start =3 x_end = 106 y_end = 22 tables nametab = it_nametab table = it_record fielddif = it_fieldif exceptions no_more_tables =1 too_many_fields =2 nametab_not_valid =3 handle_not_valid =4 others = 5. "Título st_object_hd_change-objpri = '1'. "Executar: 1a.append it_fields. "Objeto não pode ser modif. FUNÇÃO PARCEIRO call function 'CONVERSION_EXIT_PARVW_INPUT' exporting input = pt_vbpa-parvw importing output = it_bapiparnr-partn_role. "Executar: (report. "Prioridade de documento st_object_hd_change-objsns = 'F'. = 'ERNAM'. OBTEM DESCRIÇÃO DA MENSAGEM call function 'MESSAGE_PREPARE' exporting language = sy-langu msg_id = msg_id msg_no = msg_no msg_var1 = msg_var1 msg_var2 = msg_var2 msg_var3 = msg_var3 msg_var4 = msg_var4 importing msg_text = msg_text exceptions function_not_completed = 1 message_not_found =2 others = 3.. = 'NAME1'. it_fields-tabname it_fields-fieldname append it_fields. data: st_object_hd_change like sood1. call function 'POPUP_TO_SHOW_DB_DATA_IN_TABLE' exporting title_text = text-m02 tables fields = it_fields valuetab = it_valuetab exceptions field_not_in_ddic = 1 others = 2. = 'VKORG'. = 'VBAK'.. "Nome documento st_object_hd_change-objdes = p_titulo. "Objeto: sensibilidade st_object_hd_change-objcp = 'X'. it_fields-tabname it_fields-fieldname append it_fields. st_object_hd_change-vmtyp = 'T'. dlg. "Idioma st_object_hd_change-objnam = 'MENSAGEM'. * Estrutura mensagem st_object_hd_change-objla = sy-langu. * se planejar fora da sequencia especificada * form f_send_sapoffice tables t_user structure t100c t_objcont structure soli t_objhead structure soli using p_titulo like sos03-s_objdes p_acnam like sood1-acnam. data: t_receivers like soos1 occurs 0 with header line. = 'KNA1'. st_object_hd_change-skips = 'X'. = 'VBAK'. ENVIA MENSAGEM SAPOFFICE * Envia mensagem SAPOFFICE para responsavel por planejamento corte.tela em backg * . it_fields-tabname it_fields-fieldname append it_fields. t_receivers-rctim = sy-uzeit. t_shvalue. t_receivers-sndex = 'X'. t_receivers-rtunam = t_user-uname. " f_send_sapoffice EXIBE VALORES EM TELA (Util Match Code) data: begin of t_shstruc occurs 1. t_shstruc. select matnr maktx into table t_makt from makt for all entries in t_stpo where matnr = t_stpo-idnrk and . include structure shstruc.. include structure shvalue. data: end of t_shvalue. data: ln_value like help_info-fldvalue.st_object_hd_change-acnam = p_acnam. refresh t_receivers. data: end of t_shstruc... t_receivers-recnam = t_user-uname. "Nome do destinatário "Nome do destinatário call function 'SO_OBJECT_SEND' exporting object_hd_change = st_object_hd_change object_type = 'RAW' owner = sy-uname tables objcont = t_objcont * objhead = it_objhead * OBJPARA = IT_OBJPARA * OBJPARB = IT_OBJPARB receivers = t_receivers exceptions active_user_not_exist =1 communication_failure =2 component_not_available = 3 folder_not_exist =4 folder_no_authorization = 5 forwarder_not_exist =6 note_not_exist =7 object_not_exist =8 object_not_sent =9 object_no_authorization = 10 object_type_not_exist = 11 operation_no_authorization = 12 owner_not_exist = 13 parameter_error = 14 substitute_not_active = 15 substitute_not_defined = 16 system_failure = 17 too_much_receivers = 18 user_not_exist = 19 x_error = 20 others = 21. t_receivers-rcdat = sy-datum. "Executar: nome (report. t_shstruc[]. message e398(00) with text-e21 '' '' ''. "Data recebimento documento "Hora recebimento documento "Enviar: como expresso loop at t_user. endform. append t_receivers. data: begin of t_shvalue occurs 1. check sy-subrc <> 0. * Destinatário clear t_receivers. endloop. clear: t_shvalue[]. endloop. t_shvalue-low_value = t_stpo-idnrk. t_shstruc-fieldtype = 'CHAR'. t_shstruc-selectflag = 'X'. t_shstruc-selectflag = ' '. call function 'VALUES_DISPLAY' exporting cucol =1 curow =1 fieldname = 'STPO' tabname = 'IDNRK' importing select_value = ln_value tables values = t_shvalue valuestructure = t_shstruc exceptions check_table_locked =1 no_values_for_field =2 tablefield_does_not_exist = 3 others = 4. t_shstruc-keyword = text-e01. append it_dynpread. it_dynpread-fieldname = 'ZPPT010-WERKS'. t_shstruc-fieldlen = 000040. append t_shvalue. t_shstruc-pos = 2. append t_shstruc. check sy-subrc = 0. t_shvalue-low_value = t_makt-maktx. t_shstruc-fieldtype = 'CHAR'. t_shstruc-fieldtype = 'CHAR'. t_shvalue-pos = 2. t_shstruc-fieldname = 'IDNRK'. endif. t_shstruc-pos = 3. append t_shstruc. append t_shvalue. loop at t_stpo. t_shstruc-tabname = 'MAKT'. OBTEM CAMPO DE TELA(Util Match Code) "-->Tabela para receber campos lidos de uma tela data: it_dynpread like dynpread occurs 0 with header line. t_shvalue-line = sy-tabix. t_shvalue-pos = 1. t_shstruc-tabname = 'STPO'. append t_shstruc. if sy-subrc = 0.spras = sy-langu. t_shstruc-fieldlen = 000018. t_shstruc-fieldname = 'MAKTX'. t_shstruc-fieldlen = 000004. read table t_makt with key matnr = t_stpo-idnrk binary search. sort t_makt by matnr ascending. t_shstruc-fieldname = 'WERKS'. append t_shvalue. t_shstruc-tabname = 'T001W'. t_shvalue-low_value = p_werks. . t_shstruc-selectflag = ' '. t_shvalue-pos = 3. t_shstruc-keyword = text-028. t_shstruc-pos = 1. p_matnr = ln_value. t_shstruc-keyword = text-e13. MENSAGEM data: it_message like bdcmsgcoll occurs 0 with header line. t_dynpread-fieldvalue = zppt010-qtde_bob. MODIFICA CONTEUDO DA TELA data: t_dynpread like dynpread occurs 0 with header line. append t_dynpread. "--> Atualiza campos da tela call function 'DYNP_VALUES_UPDATE' exporting dyname = 'SAPMZPP009' dynumb = sy-dynnr tables dynpfields = t_dynpread .call function 'DYNP_VALUES_READ' exporting dyname = 'SAPMZPP009' dynumb = sy-dynnr tables dynpfields = it_dynpread exceptions invalid_abapworkarea = 1 invalid_dynprofield = 2 invalid_dynproname = 3 invalid_dynpronummer = 4 invalid_request =5 no_fielddescription = 6 invalid_parameter = 7 undefind_error =8 double_conversion = 9 stepl_not_found = 10 others = 11. call function 'F4IF_INT_TABLE_VALUE_REQUEST' exporting retfield = 'IT_DIAUTIL-DATA' dynpprog = sy-cprog dynpnr = '9170' dynprofield = 'IT_WEB003-ZDATA' . t_dynpread-fieldname = 'ZPPT010-QTDE_BOB'. call function 'MESSAGE_TEXT_BUILD' exporting msgid = it_message-msgid msgnr = it_message-msgnr msgv1 = it_message-msgv1 msgv2 = it_message-msgv2 msgv3 = it_message-msgv3 msgv4 = it_message-msgv4 importing message_text_output = lc_mess. RECUPERA PROXIMO NUMERO SEQUENCIAL DISPONIVEL call function 'NUMBER_GET_NEXT' exporting nr_range_nr = '01' object = 'Z_LOTE' quantity = '1' importing number = p_batch exceptions interval_not_found =1 number_range_not_intern = 2 object_not_found =3 quantity_is_0 =4 quantity_is_not_1 =5 interval_overflow =6 others = 7. " CATEGORIA CLASS CONT append t_get. OBTEM VALOR POR EXTENSO CALL FUNCTION 'SPELL_AMOUNT' EXPORTING amount = j_1bprnfhd-nftot currency = 'BRL' filler = ' ' language = sy-langu IMPORTING in_words = spell EXCEPTIONS not_found = 1 too_large = 2 OTHERS = 3. " EMPRESA append t_get. OBTEM MESSAGEM RETORNADA PELA SAP (Ex: Num ordem criada) call function 'MESSAGE_TEXT_BUILD' exporting msgid = it_message-msgid msgnr = it_message-msgnr msgv1 = it_message-msgv1 msgv2 = it_message-msgv2 msgv3 = it_message-msgv3 msgv4 = it_message-msgv4 importing message_text_output = lc_mess. data : begin of t_get occurs 0. call function 'DYNP_VALUES_READ' . data : end of t_get.window_title = text-067 value_org = 'S' tables value_tab = it_diautil exceptions others = 3. observações: retfield = nome da tabela e campo da sua tabela interna. dynpprog = nome do programa dynpnr = numero da tela window_title = texto no cabeçalho do matchode Value_tab = tabela interna. F4IF_FIELD_VALUE_REQUEST ver include LKOBSF6U CONVERTE UNIDADE DE MEDIDA call function 'CONVERSION_EXIT_CUNIT_OUTPUT' exporting input = wa_mara-meins language = sy-langu importing output = vc_meins exceptions unit_not_found = 1 others = 2. OBTEM VALOR DE UM CAMPO NA TELA form monta_bukrs_pc. t_get-fieldname = 'EKPO-BUKRS'. include structure dynpread. t_get-fieldname = 'EKPO-KNTTP'. wbukrs = t_get-fieldvalue. wknttp = t_get-fieldvalue. if sy-subrc ne 0. C_REPORT = 'ZREPORT'.Subrc = ' sy-subrc. else.SAPSCRIPT ADDRESS Formatação automática de informação de endereço BOTTOM Usado apenas na janela MAIN para imprimir no rodapé da janela BOX Cria caixa CASE Cria condição para argumentos DEFINE Cria um novo símbolo em tempo de execução HEX Passa valores hexadecimais diretamente IF Cria condição para argumentos INCLUDE Incluí outros textos e logotipos NEW-PAGE Força uma nova página NEW-WINDOW Força uma nova janela PERFORM Chama subrotina POSITION Usado para caixas setando X & Y PRINT-CONTROL Inicializa um seqüência definida de controle de impressão PROTECT Protege uma página de parada RESET Reestarta seqüência de números de saída SET COUNTRY Seta o país para campos SET DATE MASK Seta formato de data SET SIGN Coloca o campo a direita ou esquerda do número SET TIME MASK Seta formato de hora SIZE Usado apenas para caixa onde seta o tamanho da caixa STYLE Usa um diferente tipo de estilo . PROGRAMA SEJA EXECUTADO EM BACKGROUND DATA: C_REPORT LIKE RALDB-REPORT. endif. read table t_get with key fieldnam e = 'EKPO-KNTTP'. message e398(00) with 'Zillo-Exit(wempf) E R R O ' 'Funcao Valor de Tela PC . COMANDO DE CONTROLE .exporting dyname = 'SAPMM06E' dynumb = '0113' tables dynpfields = t_get exceptions invalid_abapworkarea = 1 invalid_dynprofield = 2 invalid_dynproname = 3 invalid_dynpronummer = 4 invalid_request = 5 no_fielddescription = 6 invalid_parameter = 7 undefind_error = 8 double_conversion = 9 stepl_not_found = 10 others = 11. clear t_get. " report a ser executado em background CALL DIALOG 'JOB_SUBMIT' EXPORTING RALDB-REPORT FROM C_REPORT. clear t_get. read table t_get with key fieldname = 'EKPO-BUKRS'. através do parâmetro "frame". * Desbloqueia a OP . exemplo abaixo: BOX XPOS 000 MM YPOS 000 MM WIDTH 170 MM HEIGHT 10 MM FRAME 10 TW BLOQUEIOS TABELAS BLOQUEIO DO MATERIAL/CENTRO call function 'ENQUEUE_EMMARCE' exporting mode_marc = 'E' mandt = sy-mandt matnr = it_corte-matnr werks = p_werks exceptions foreign_lock = 1 system_failure = 2 others = 3.SUMMING Adiciona valores para um total TOP Usado apenas na janela MAIN para imprimir no topo da janela Procure montar o comando box definindo a espessura da linha. BLOQUEIO MATERIAL & MKAL & CENTRO (VERSÃO DE PRODUÇÃO) call function 'ENQUEUE_EMATVER' exporting mode_mkal = 'E' mandt = sy-mandt matnr = p_artigo werks = p_werks verid = p_verid exceptions foreign_lock = 1 system_failure = 2 others = 3. BLOQUEIA ORDEM DE PRODUÇÃO * Bloqueia a OP call function 'CO_RU_ORDER_LOCK' exporting aufnr_imp = vc_op. cf. BLOQUEIA CENTRO DE TRABALHO call function 'ENQUEUE_ECARPL' exporting mandt = sy-mandt arbpl = p_arbpl werks = p_werks exceptions foreign_lock = 1 system_failure = 2 others = 3. BLOQUEIO MATERIAL/CENTRO PARA TABELA MBEW (Tabela avaliação material) call function 'ENQUEUE_EMMBEWS' exporting mode_mbew = 'S' mandt = sy-mandt matnr = p_artigo bwkey = p_werks exceptions foreign_lock = 1 system_failure = 2 others = 3. * Esperar liberação do bloqueio while vi_number > 0.call function 'CO_RU_ORDER_DEQUEUE' exporting aufnr_imp = vc_op. enddo. do 10 times. st_seqg3-garg+25(10) = p_charg. call function 'DEQUEUE_EMMCHA' exporting mode_mcha = 'E' matnr = p_matnr mandt = sy-mandt werks = p_werks charg = p_charg exceptions foreign_lock = 1 system_failure = 2 others = 99. st_seqg3-gname = 'MCHA'. data: vi_number like sy-tabix. vi_number = 1. endwhile. BLOQUEIA TABELA call function 'ENQUEUE_E_TABLEE' exporting mode_rstable = 'E' tabname = v_table exceptions foreign_lock = 1 . call function 'ENQUEUE_READ' exporting gclient = sy-mandt gname = p_seqg3-gname garg = p_seqg3-garg guname = sy-uname importing number = vi_number tables enq = it_enq exceptions communication_failure = 1 system_failure =2 others = 3. data: it_enq like seqg3 occurs 0 with header line. st_seqg3-garg+03(18) = p_matnr. st_seqg3-garg = sy-mandt. BLOQUEIO DA ORDEM PLANEJADA call function 'DEQUEUE_EMPLAFE' exporting mode_vbak = 'E' mandt = sy-mandt vbeln = it_plaf_excl-plnum. st_seqg3-garg+21(04) = p_werks. BLOQUEIO DO MATERIAL call function 'ENQUEUE_EMMARCE' exporting mode_marc = 'E' mandt = sy-mandt matnr = p_matnr werks = p_werks exceptions foreign_lock = 1 system_failure = 2 others = 3. * GROUP_NAME . see the system log (transaction SM21) for diagnostic * info * PBT_ENV_ALREADY_INITIALIZED * Function module may be called only once. wp_parallel. check p_parall = c_on. endif.Total number of dialog work processes available in * group * FREE_PBT_WPS .Name of group to check * MAX_PBT_WPS . See transaction RZ12 * INTERNAL_ERROR * R/3 System error. if sy-subrc eq 0. RFC group not defined. is called automatically by * R/3 if you do not call before starting parallel processing * CURRENTLY_NO_RESOURCES_AVAIL * No dialog work processes in the group are available. wp_parallel = c_on. PROCESSAMENTO PARALELO PROCESSAMENTO PARALELO form parallel_initialize. call function 'SPBT_INITIALIZE' exporting group_name = wp_group importing max_pbt_wps = wp_total free_pbt_wps = wp_available exceptions invalid_group_name =1 internal_error =2 pbt_env_already_initialized = 3 currently_no_resources_avail = 4 no_pbt_resources_found =5 cant_init_different_pbt_groups = 6 others = 7. wp_available. BLOQUEIO DO call function 'ENQUEUE_EMMBEWE' exporting matnr = it_key-matnr bwkey = p_werks bwtar ='' exceptions foreign_lock = 01 system_failure = 02 endloop.Number of work processes available in group for * parallel processing at this moment * INVALID_GROUP_NAME * Incorrect group name. BLOQUEIO DA ORDEM call function 'ENQUEUE_EVVBAKE' exporting mode_vbak = 'E' mandt = sy-mandt vbeln = it_vbak-vbeln exceptions foreign_lock = 1 system_failure = 2 others = 3.system_failure = 2 others = 3. they are busy or * server load is too high . clear: wp_total. wp_taskname = wp_taskname + 1. refresh it_pack. if vi_fim > vn_lines. endif. wp_taskname. wp_packs = vn_lines / wp_jobs. endif. endif. else. if wp_jobs <= 0. clear it_pack. * CANT_INIT_DIFFERENT_PBT_GROUPS * You have already initialized one group and have now tried initialize a * different group clear: wp_snd_jobs. if wp_jobs = 1 and vi_fim < vn_lines. refresh t_caufv. vi_ini = 1. enddo. vi_fim = vn_lines. vi_ini = vi_fim + 1. wp_jobs = 1. vi_fim = wp_packs. refresh it_pack_caufv. wp_snd_jobs = wp_snd_jobs + 1. exit. it_save[] = t_caufv[]. wp_rcv_jobs. do. * Divide the records into work packets wp_jobs = wp_available / 2. endif. if wp_parallel = c_off.1. call function 'Z_PPF009' starting new task wp_taskname destination in group wp_group performing return_zppf009 on end of task exporting pi_parallel = wp_parallel tables t_caufv = it_pack t_jest = it_jest. vi_fim = vn_lines. wp_packs = vn_lines. if wp_packs = 0. . if sy-subrc eq 0. clear t_caufv. endif. call function 'Z_PPF009' exporting pi_parallel = wp_parallel tables t_caufv = t_caufv t_jest = it_jest. wp_jobs = wp_jobs . add wp_packs to vi_fim.* NO_PBT_RESOURCES_FOUND * No servers in the group met the criteria of > two work processes * defined. append lines of it_save from vi_ini to vi_fim to it_pack. stop. endif. * Tabela interna para uso em Clientes data: begin of it_kna1 occurs 0. exit. get parameter id 'LIF' field vc_lifnr. data: vc_kunnr like kna1-kunnr. data: end of it_kna1.wait until wp_rcv_jobs >= wp_snd_jobs. endif. if not t_caufv[] is initial. select aufnr posnr wemng appending table it_afpo from afpo for all entries in t_caufv where aufnr = t_caufv-aufnr. refresh it_pack_caufv. data: vc_lifnr like lfa1-lifnr. select lifnr stcd1 name1 into table it_lfa1 from lfa1 where stcd1 = input. delete t_caufv where ente = c_on. * Procedimentos para Fornecedores if sy-tcode = 'XK01' or sy-tcode = 'XK02' or sy-tcode = 'XK03' or sy-tcode = 'MK01' or sy-tcode = 'MK02' or sy-tcode = 'MK03' or sy-tcode = 'FK01' or sy-tcode = 'FK02' or sy-tcode = 'FK03' . exit. output = input. data: vc_ktokd like kna1-ktokd. CONSISTENCIA CGC/CFP function field_exit_stcd1. describe table t_caufv lines sy-tmaxl. sort it_afpo by aufnr posnr. endif. name1 like lfa1-name1. lifnr like lfa1-lifnr. else. if sy-subrc ne 0. name1 like kna1-name1. . endif. message s575(ck). sort t_caufv by aufnr. stcd1 like lfa1-stcd1. append lines of it_pack_caufv to t_caufv. * Tabela interna para uso em Fornecedores data: begin of it_lfa1 occurs 0. delete it_lfa1 where lifnr = vc_lifnr. stcd1 like kna1-stcd1. if sy-tmaxl <> vn_lines. if input is initial. data: end of it_lfa1. kunnr like kna1-kunnr. OBTEM DADOS DA FATURA CALL FUNCTION 'J_1B_NF_VALUE_DETERMINATION' EXPORTING nf_header = wk_header . exit. select single ktokd into vc_ktokd from kna1 where kunnr = vc_kunnr. * Procedimentos para Clientes if sy-tcode = 'VD01' or sy-tcode = 'VD02' or sy-tcode = 'VD03' or sy-tcode = 'XD01' or sy-tcode = 'XD02' or sy-tcode = 'XD03' or sy-tcode = 'V-09' or sy-tcode = 'V-03' or sy-tcode = 'FD01' or sy-tcode = 'FD02' or sy-tcode = 'FD03'. message e398(00) with text-002 it_kna1-kunnr it_kna1-name1. endif. exit.loop at it_lfa1. endloop. else. message e398(00) with text-001 it_lfa1-lifnr it_lfa1-name1. if sy-subrc ne 0. loop at it_kna1. select kunnr stcd1 name1 into table it_kna1 from kna1 where stcd1 = input. endfunction. endif. endif. endif. endloop. endif. if sy-subrc = 0 and vc_ktokd = 'RECE'. get parameter id 'KUN' field vc_kunnr. NOTA FISCAL OBTEM DADOS DA NOTA FISCAL CALL FUNCTION 'J_1B_NF_DOCUMENT_READ' EXPORTING doc_number = p_docnum (informar num NF) IMPORTING doc_header = wk_header TABLES doc_partner = wk_partner doc_item = wk_item doc_item_tax = wk_item_tax doc_header_msg = wk_header_msg1 doc_refer_msg = wk_refer_msg EXCEPTIONS document_not_found = 1 docum_lock =2 OTHERS = 3. delete it_kna1 where kunnr = vc_kunnr. CONVERTE CAMPO FLOAT EM CHAR call function 'FLTP_CHAR_CONVERSION' exporting decim = 15 expon = 0 input = v_flt * IVALU = ' ' * MASKN = ' ' importing flstr = vc_char exceptions others = 1.IMPORTING ext_header = wk_header_add TABLES nf_item = wk_item nf_item_tax = wk_item_tax ext_item = wk_item_add. . OBTEM DADOS DO DESTINATÁRIO NF CALL FUNCTION 'READ_TEXT_INLINE' EXPORTING id = '0004' inline_count = 15 language = 'P' name = xthead-tdname object = 'VBBK' IMPORTING header = thead TABLES inlines = tinlinetab lines = tlinetab EXCEPTIONS id =1 language =2 OBTEM PARCEIRO DA NOTA FISCAL CALL FUNCTION 'J_1B_NF_PARTNER_READ' EXPORTING partner_type = destination-partner_type partner_id = destination-partner_id partner_function = destination-partner_function doc_number = wk_header-docnum IMPORTING parnad = j_1binnad EXCEPTIONS partner_not_found =1 partner_type_not_found = 2 OTHERS = 3. CRIA TEXTO DESCRITIVO * CALL FUNCTION 'CREATE_TEXT' EXPORTING fid = 'BEST' flanguage = sy-langu fname = vc_matnrt fobject = 'MATERIAL' SAVE_DIRECT = 'X' fformat = '=' TABLES flines = it_linha EXCEPTIONS no_init = 1 no_save = 2 OTHERS = 3. LISTA ARQUIVOS TXT TMP_GUI_DIRECTORY_LIST_FILES TH_DELETE_USER => Derruba todas as sessões do mandante/usuário informado. TH_DELETE_MODE => Derruba um modo do usuário. Eexport.Referente dados tabelas DD01L – Dominios DD01T – Texto de Dominios DD02L – Tabelas SAP DD02T – Texto de Tabelas SAP DD03L – Campos de Tabelas DD03T – Texto para campos da tabela T001 – Empresas T001T – Texto da Empresa T001L – Depósitos T001W – Centros/Filiais T002 . TH_LONG_USR_INFO => Lista em uma tabela as informações de sessão.todas as transações realizados no R/3.. sempre que vc desenvolver/alterar um formulario(sapscript) em um client. sistema file: GUI. para isso vc deve executar o programa RSTXR3TR.. c:\zmedruck.. transação e modo.txt TABELAS MAIS UTILIZADAS DD* . usuário. não se esqueça de informar a request informar request . RELATÓRIOS SAP RSCLTCOP Copy tables across clients RSAVGL00 Table adjustment across clients RSINCL00 Extended program list RSBDCSUB Release batch-input sessions automaticly RSTXSCRP Transport SAPscript files across systems RSORAREL Get the Oracle Release RGUGBR00 Substitution/Validation utility RSPARAM Display all instance parameters RSUSR003 Check the passwords of users SAP* and DDIC in all clients RSUSR006 List users last login RSMODPRF Field Exits for Data Elements – CMOD (PRFB) COPIA DE SAPSCRIPT na se71 informe o formulario j_1b_boleto opção FORMULARIO --> CRIAR DE (ja vem o form que vc ja informou) PARA (nome do novo form Z_boleto_bb) deixe marcado CRIAR INICIAL ai depois voce entra na se71 novamente e altere o z_boleto_bb Gente.. vai ai outra dica. (de desenvolvimento por exemplo) e quiser testar este em outro client voce deve primeiro fazer a copia deste no client que vc quer testar..Idiomas T006 – Unidade de Medida T015Z . OU a transação SCC1..Cabeçalho de Documentos Gerais de FI . FI/CO BKPF .Algarismos e números por extenso T020R – Programas e Transações TSTC – Transações CDHDR e CDPOS . Valores das Ordens de Investimento e Outras Ordens CSKS .lista técnica MKPF .Mestre de Materiais MARC .Dados de centro para material MARM .Itens de Partidas Compensadas de Clientes BSAK .Área de Apropriação de Custo para Ordem TKO09 .Códigos de IRF (Nova Funcionalidade) J_1AWITH .Dados de Operações de IRF J_1AWTOFF .Itens de Partidas Compensadas de Contas do Razão BSEG .Operações (Ex.Partidas no CO Referente ao Período COSP .Item da Ordem PCP .Cabeçalho da Ordem PCP AFPO .Itens de Partidas em Aberto de Clientes BSIK .Cabeçalho do Documento Nº CO Referente ao Período COEP .Cabeçalho de Documento de Compras EKPO .Histórico de Documento de Compras EKKN .Código Oficial de Imposto de Renda na Fonte SKA1 .Avaliação do material T134T .Mestre da Chave de Lançamento TBSLT .Cabeçalho de Documento de Materiais (Movimentações) MSEG .Perfis de Planejador . "WIT" Operações de IRF) T894 .Lotes MARD .Ligação material .Itens de Partidas Compensadas de Fornecedores BSAS .Mestre de Centro de Custo CSKT .Textos breves de Materiais MARA .Mestre das Contas do Razão T001S .Denominação elementos MRP MVER .Item de Documento de Compras MAKT .Estrutura de Balanço L/P T030A .Encarregado da Contabilidade T011 .Consumos de material PP AFKO .Itens de Partidas em Aberto de Fornecedores BSIS .Texto de Centro de Custo GLT0 .Itens de Partidas em Aberto de Contas do Razão COBK .Requisição de compra T457T .Cabeçalho do documento de inventário MDKP .Denominação dos Tipos de Material IKPF .Totais para General Ledger Local J_1AT059Z .documento MRP MDRS .Itens de Documentos Gerais de FI BSID .Texto para Área de Apropriação de Custo para Ordem TTXD .Área de Contabilidade de Custos TKA09 .Estoques de lotes MCHA .Versões de Ledger TBSL .Opções Básicas Versões de Ordens TKA50 .Classificação Contábil de Documento de Compras EKKO .Item de Documento de Materiais (Movimentações) MBEW .Avaliação do Material MCHB .Descrição da estrutura do código de localização fiscal MM EKBE .Mestre da Conta do Razão (Movimentação no Período) GLT1 .Unidades de medida para material MBEW .Segmento de depósito/de lotes mestre de material MAST .Denominação das Chaves de Lançamento TGSB .Tabela de Entidades TKO08 .Denominação das Divisões TKA01 .Divisões TGSBT .Dados de cabeçalho .BSAD .Visão leitura necessidades dependentes/reserva material EBAN . seleção de itens PLKV .Unidade de Organização .Nota Fiscal .Cabeçalho da Lista Técnica STPO .Roteiro .Cabeçalho de lista técnica STKO . PLKZ .Cabeçalho VBRP .Tipo de Documento TVGRT .Itens T171T .planej.Faturamento – Itens VBPA .Confirmações de ordens CAUFV .Remessa/Fornecimento .Visão p/dados cabeç.Tradução SM04 – Lista de Usuários SM50 – Síntese de Processos SE81 – Hierarquia de Aplicações – User Exits SM12 – Entrada de Bloqueio SOLE – Visão Atualização Aplicações OLE SCOT – SAPConnect .Documento VD: parceiro VTTK .Ordem Planejada PLKO – Plano Roteiros – cabeçalho PLPO – Operações Roteiros PLAS .Ligação entre Materiais (Lista Técnica) PLAF .Sistema de transporte: entradas de objeto de ordens/tarefa TRANSAÇÕES SE63 .Cabeçalho J_1BNFLIN .Valores das modalidades das características JEST – Status individual por objeto (ordem e status) CABM .Valores da característica CAWNT .Itens XLIPS TVTWT – Descrição do Canal de Distribuição GERAL AUSP .Itens VBFA .Cabeçalho do documento de modificação CDPOS .Fluxo de Documento de Venda VBRK .Lista de tarefas: cabeçalho central STKO .Grupo de Vendedores VBAK .Cabeçalho VTTP .Faturamento .Ordens de Venda .Filial do CNPJ J_1BNFDOC .Nota Fiscal .Cabeçalho LIPS .Característica CABNT .Textos TVFK .Textos para características CAWN .Transporte .Remessa/Fornecimento .ord.Documento de Faturamento .Sistema de transporte: cabeçalho de ordens/tarefas E071 .Textos para valores CDHDR .Itens LIKP .Ordens de Venda .AFVV – Operação da ordem( quantidades/datas/valores) AFVC – Operações da Ordem (centro de trabalho) AUFK .Visão dos cabeçalhos de ordens PCP/RK MAST .Itens do documento de modificação E070 .Mestre de Ordens AFRU .Transporte .Item da Lista Técnica RESB – Componentes da ordem (reservas/necessidades dependentes) T003P .Cabeçalho VBAP .Textos de Tipos de Ordens SE35 – Modulo Dialogo SD J_1BBRANCH .Clientes Zona de Distribuição . Compara dois fontes SCC1 – Copia formulário entre mandantes STAT . Quando Atualizamos material no R3 temos que Atualizar no OCS Pessoal estou com Problemas para Atualização de Materiais para OCS via BD21 gera ponteiros e Modificações de IDOC´s OCS e um Software para Controle de Deposito via Coletor de dados. DO. OPEN DATASET ARQ_ENT FOR INPUT IN TEXT MODE. CRIAÇÃO DE QUERY Criar uma Query vá na transação SQ03 e crie um grupo de usuários. Alguem tem essa transação alterado para atualização por lotes? VOFM .Transferência Dados de Controle – Direct Input SXDA. no menu Ambiente>Infoset ( ou transação SQ02 ) crie um Infoset informando as tabelas EKKO e EKPO e informando o seu relacionamento e os campos que serão usados. IF SY-SUBRC NE 0.IDOC e Base EDI SXDB . READ DATASET ARQ_ENT INTO ITAB. CLOSE DATASET ARQ_ENT. APPEND ITAB.Formulas SE39 . CLOSE DATASET ARQ_ENT.000 o servidor não está aguentando tanto R3 e OCS.. E quando Atualizamos o Material automaticamente ( job Periodico ) essa transação Envia para o OCS as alterações só tem um probleminha foi atualizado 40. CLEAR ITAB.Transferência Dados de Controle – Direct Input SE84 – Classe de Mensagens (transporte da classe) FIBF – Fluxo de Caixa ( BTE . REFRESH ITAB. ENDDO. e depois vá no menu mbiente->Queries (ou transação SQ01 ) e crie a Query com base no infoset criado. .Log de programas ativos no servidor GCt9 – Transportar regras de validação SE18 / SE19 .Business Transaction Event é uma espécie de Exit que quando executa um determinado evento no sistema ( pré definido ) isso dispara uma chamada de uma função ( function module ) MC00 – Transação do LIS – Sistema de Informação para Logística Ou Seguir o caminho LOGISTICA CONTROLLING LOGISTICA DWDM – Centro de Demonstração MASS – Atualização em massa OMCF – Controle Impressão (utilizado para configurar etiqueta) STAT – Single Statistcs records ABAPDOCU – Documetação ABAP SU01 – Exibir Usuários BD21 -.SM51 – Derruba sessão do usuário SM12 – Objetos travados por usuários WEDI -.. EXIT. ENDIF.essa transação atualiza material via RFC para OCS ( siStema de Gerenciamento de WM por Coletor ).BADI Diferença entre MB0A e MB01 Efetua entrada de mercadoria baseado na saída da mercadoria Efetua entrada de mercadoria baseado no fornecedor(pedido). não leva em consideração a saída ABERTURA ARQUIVO SERVIDOR CONCATENATE '/var/mqm/data/log/' v_sai INTO arq_ENT. htm http://www.com/cbbooks/020/0201674750. LINE OF gt_fieldcat. as vezes bem grande. Ao final do programa. lvc_s_sort OCCURS 0. PUBLIC SECTION.sap. lvc_t_fcat. A partir desta analise.netstoreusa. sy-ucomm. clicar em voltar e aparecera um botao "Analise". O ideal eh que fique bem abaixo disso.shtml <http://www. A porcentagem de acesso a banco nao deve ultrapassar 80% para reports. Depois.com/catalog/query. lvc_s_layo.BAPI http://wwwext. Clique no nome da tabela acessada e no botao "Explain SQL". sy-repid. Para criar o indice. *-----.de/solutions/technology/bapis/preview/catalog45a/bo _fi. stb_button. aparece uma analise de tempo de execucao. Em outra sessao do mesmo mandante. Existem duas barras. cl_gui_alv_grid.de/cfm LIST VIEW DATA: it_saida TYPE st_saida OCCURS 0 WITH HEADER LINE.CLASSES -------------------------------------------------------* *---> Definição CLASS lcl_event_receiver DEFINITION. c.com/solutions/technology/bapis/bapi.ANALISE PERFORMANCE transacao SE30 para rodar o programa atraves dela. para não prejudicar atualizacoes. *-----.htm http://www. Voce vera uma relacao de acessos. rode novamente o programa.sap. va para a transacao ST05 e ative o trace do SQL. Nesta tela ha um botao que mostra quais tabelas foram mais acessadas. Ao clicar no botao. descobre-se qual select deve ser otimizado. lvc_s_sort.VARIAVEIS -----------------------------------------------------* * Armazena dados da linha que foi selecionada DATA: wa_saida LIKE LINE OF it_saida2.sapag. aparecera o custo do acesso.sap-ag.htm http://www.sap-ag. Ao final do programa. it_saida2 TYPE STANDARD TABLE OF st_saida INITIAL SIZE 0.brs-online. CLASS-METHODS: handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid .com/solutions/technology/bapis/edu/docu/caalbe/caalbe. envolva o Basis.de/solutions/technology/bapis/index.de> Ver no Sap Script: FORMATOS DE CARACTERES Cod Barras: xxxxxx – Codigo de Barras https://www002. O custo NUNCA podera ser superior a 15. uma indicando porcentagem de acesso a banco e outra porcentagem de processamento.jsp (Interface repository) . estude uma chave alternativa de acesso para o WHERE ou crie um indice para a tabela. Se for.h tml http://www.sap. cl_gui_custom_container. Na parte de baixo da nova tela. REF TO cl_gui_alv_grid. desative o trace e liste. cl_gui_alv_grid. mostrando a porcentagem da execucao. * Controles de Saida para DATA: g_custom_container1 g_custom_container2 alv_grid1 alv_grid2 DATA: gs_layout gs_toolbar g_repid g_grid ok_code(4) save_ok gt_fieldcat wa_fieldcat wa_sort it_sort o relatório TYPE REF TO TYPE REF TO TYPE REF TO TYPE REF TO TYPE TYPE LIKE TYPE TYPE LIKE TYPE LIKE LIKE TYPE cl_gui_custom_container. Sites ABAP http://ifr. gt_fieldcat[]. CALL METHOD alv_grid2->refresh_table_display EXCEPTIONS finished = 1 OTHERS = 2 . wa_fieldcat. " create_objects_NF OUTPUT MODULE transfer_data__nf OUTPUT. text-005. wa_fieldcat-fieldname wa_fieldcat-tabname wa_fieldcat-reptext APPEND wa_fieldcat TO = 'DOCDAT'. IF e_column_id = 'PO_NUMBER'. CREATE OBJECT alv_grid2 EXPORTING i_parent = g_custom_container2. gt_fieldcat. = 'J_1BNFDOC'. READ TABLE it_saida2 INDEX e_row_id-index INTO it_saida. "handle_hotspot_click ENDCLASS. ENDMETHOD. ENDIF. * Define Estrutura CLEAR wa_fieldcat. *---> Implementation CLASS lcl_event_receiver IMPLEMENTATION. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. 'X'. IF g_custom_container2 IS INITIAL. 'X'. ENDIF. = 'Data NF'. MODULE create_objects_nf OUTPUT. = 'J_1BNFDOC'. CLEAR wa_fieldcat. ENDMODULE. g_repid = sy-repid. ELSE. * Define Layout gs_layout-grid_title gs_layout-detailtitl gs_layout-zebra gs_layout-keyhot gs_layout-numc_total = = = = = text-001. * * * * * " Titulo do relatório " Titulo do detalhe " Mudança cor Linha " Permitir Total de cpo Num CALL METHOD alv_grid2->set_table_for_first_display EXPORTING I_BYPASSING_BUFFER = I_BUFFER_ACTIVE = I_CONSISTENCY_CHECK = i_structure_name = IS_VARIANT = . PERFORM exibe_nf. IF sy-subrc <> 0. ENDCLASS. gt_fieldcat. CLEAR it_saida. METHOD handle_hotspot_click. = 'Documento'. CLEAR: gs_layout. CREATE OBJECT g_custom_container2 EXPORTING container_name = 'V_CTRL_NF'. 'X'. wa_fieldcat-fieldname wa_fieldcat-tabname wa_fieldcat-reptext APPEND wa_fieldcat TO = 'DOCNUM'. REFRESH: it_saidanf.IMPORTING e_row_id e_column_id. PRIVATE SECTION. ENDIF. . " 0 = FUNDO CELULA. TEM QUE INSERIR OS DADOS DO TABCOLOR EM UMA TABELA AUXILIAR] " PARA DEPOIS ATUALIZAR A TABELA IT_SAIDA. " transfer_data__NF OUTPUT COLOCAR TOP OF PAGE st_print-NO_COLWOPT = 'X'. 1 = CARACTER 'X' . " Numero da cor 6 é o negativo . COLOCAR CELULA EM VERMELHO types: Begin of st_saida. " Aqui terá os dados a serem exibidos em tela DATA: it_saida type st_saida OCCURS 0 WITH HEADER LINE. AS4TEXT like E07T-AS4TEXT. IF sy-subrc <> 0. 0. loop at it_saida. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.* * * * * * * * * I_SAVE = I_DEFAULT = 'X' is_layout = gs_layout IS_PRINT = IT_SPECIAL_GROUPS = IT_TOOLBAR_EXCLUDING = IT_HYPERLINK = IT_ALV_GRAPHICS = CHANGING it_outtab = it_saidanf it_fieldcatalog = gt_fieldcat IT_SORT = IT_FILTER = EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4 . . modify it_saida index sy-tabix from ls_outtab transporting tabcolor.. insert ls_tabcolor into table ls_outtab-tabcolor. data: ls_tabcolor type lvc_s_scol. Data: ls_outtab " " " " Usuário Request Objeto Descrição do Usuário type st_saida. tabcolor type lvc_t_scol.. TRKORR like e070-TRKORR. ENDMODULE. 'TRKORR' . st_print-PRNT_TITLE = 'X'. endif. " BOM PARA ATUALIZA A TABELA FINAL QUE EXIBE REALMENTE OS DADOS TEM QUE FAZER ESTAS " ATUALIZAÇÕES AQUI. AS4USER like e070-AS4USER. gs_layout-CTAB_FNAME = 'TABCOLOR'. ls_tabcolor-color-col ls_tabcolor-color-int ls_tabcolor-color-inv ls_tabcolor-nokeycol ls_tabcolor-fname = = = = = '6'. CALL METHOD cl_gui_control=>set_focus EXPORTING controL = alv_grid2. OBJ_NAME like e071-OBJ_NAME. " 0 = INTENSIFIED OFF 1 = INTENSIFIED ON 1. endloop. SET HANDLER lcl_event_receiver=>handle_hotspot_click FOR ALL INSTANCES. ENDIF. if sy-tabix = 2. " sendo que gs_layout é aquela estrutura que a gente define o titulo do relatorio. CALL METHOD alv_grid2->set_toolbar_interactive. End of st_saida. Functions") Functions. Para criar uma field-exit na 4. ACENTUAR LETRAS letters = 'ÁAÁAÃAÂAÇCÉEÉEÍIÌIÓOÒOÔOÕOÚUÙU. limpe o campo e execute novamente o programa.Destination = "B20" With Functions.FIELD_EXIT_SYPDEST .se80 objetos de programa.CPF APLICAÇÃO VISUAL BASIC – EXECUTAR O SAPGUI Resp1: tente utilizar o comando SHELL Resp2: Primerio marque "SAP Logon Control" em Components. e execute o programa Por exemplo: STCD1 Ira criar a seguinte função EXIT_STCD1_001 Coloque a programa desejada.CNPJ HR_BR_CHECK_CPF_FORMAT . maiores informações pode ser adquirido na nota 29377 CMOD. irá exibir a tela aonde o field-exit deverá ser amarrado. deslocar.6 entre na transação SE38 e execute o programa RSMODPRF. ao final da programa volta para a tela aonde foi informado o nome do campo. CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS' EXPORTING INTEXT = TABPF IMPORTING OUTTEXT = TABPF EXCEPTIONS OTHERS = 01. colocar classe desejada. FUNÇÃO FORMATA CGC CONVERSION_EXIT_CGCRT_OUTPUT CONVERSION_EXIT_CGCBR_OUTPUT. objeto desenvolvimento. '. Está pronto a field-exit.Password = "" . processar.exit para o elemento de dados SYPDEST. Selecione todos os programas e telas desejado e ative. aparecerá um campo. informe o nome do campo.Connection. criar a task. HR_BR_CHECK_CGC_FORMAT . Se nao me engano. utilizei as tabelas T005 e TTXD.ApplicationServer = "" ' Instância Não é Necessário . TRANSLATE SUA_FRASE USING LETTERS. controlar momento da impressão CARGA DE CLIENTES EM BACK Não estou conseguindo gerar clientes em back devido ao código do domícilio fiscal. Dim Functions As Object Dim GetCustomers As Object Dim Customers As Object Set Functions = CreateObject("SAP.Connection . MARGEM DO RELATÓRIO SET MARGIN x y. para achar os valores.Client = "" ' Código do Client .User = "" ' User Name . entrar PRFB no OK-CODE – SE93 MUDAR TASK Programa local . ..Language = "P" End With If Functions. * Tabela interna utilizada pela função COMMAND DATA: TI_TABELA(2000) OCCURS 0 WITH HEADER LINE. IMPORTING Qualquer dúvida entre em contato. antes da function WS_DOWNLOAD ANEXAR ARQUIVO A UM EMAIL SO_NEW_DOCUMENT_ATT_SEND_API1 ENVIO DE EMAIL (UTILIZANDO UNIX) REPORT ZEMAILUNIX. * Assunto do e-mail DATA: W_ASSUNTO(80) TYPE C. * Atribuição de valores às variáveis W_ANEXO = '/usr/mot/data/CF2/qsap/ia/out/work/testpo. Use o comando CALL FUNCTION com a adição DESTINATION.txt'.. GERAÇÃO DE ARQUIVO MAGNETICO Estou utilizando o PERFORM SET_TRAIL_BLANKS(SAPLGRAP) USING 'X'... * Verifica se é possível executar a rotina CALL FUNCTION 'AUTHORITY_CHECK_C_FUNCTION' . Paulo Chagas...Logon(hWnd. * Geração do comando para envio de e-mail CONCATENATE 'mailx -s "' W_ASSUNTO '"' w_destinatario '<' w_anexo INTO W_COMANDO SEPARATED BY SPACE.. W_DESTINATARIO = 'nome_do_peao@provedor. sem ter que gerar arquivo e fazer interfaces. . * Nome do arquivo do Unix que será anexado ao e-mail DATA: W_ANEXO LIKE RLGRAP-FILENAME. * Destinatário do e-mail DATA: W_DESTINATARIO(80) TYPE C.com'. quero conectar 2 Clients de maneira que possa comparar e enviar dados de um para o outro. W_ASSUNTO = 'Teste de e-mail com arquivo anexo'. * Linha de comando do Unix DATA: W_COMANDO(150) TYPE C.Connection.. True) = False Then MsgBox "Connection Failed" End If CONECÇÃO DOIS CLIENT´S DIFERENTES(INDEPENDENTE MESMA INSTANCIA) Mas é exatamente isso que quero. Verifique se uma destas funções lhe servem: RFC_READ_TABLE ou RFC_GET_TABLE_ENTRIES.. por exemplo: CALL FUNCTION 'RFC_READ_TABLE' DESTINATION 'QAS-320' EXPORTING .. independente da mesma instancia ( Maquina ). * Verifica se existe autorização IF SY-SUBRC NE 0. tipo de dados = USER categ tamanho = tamanho de dados que deverá conter a tabela . SCP_REPLACE_STRANGE_CHARS GERADOR DE TELA AUTOMATICO Agora se voce deseja criar um gerador.0856. 450. ELSE. * Chama a função que envia o e-mail via R/3 pelo Unix CALL 'SYSTEM' ID 'COMMAND' FIELD W_COMANDO ID 'TAB' FIELD TI_TABELA-*SYS*. STOP. ************* FIM ********************* Função que passa de palavras c/ acentuação para palavras s/ acentuação. WRITE: /000 'Autorização negada. Criar transação de parametro.EXPORTING PROGRAM = SY-REPID ACTIVITY = 'CALL' FUNCTION = 'SYSTEM' EXCEPTIONS NO_AUTHORITY = 1 ACTIVITY_UNKNOWN = 2. SY-SUBRC. ENDIF. SUBRC ='. criar a transação perguntar qual é a tela. valor propostos: viewname . Funções Úteis em ABAP Esta página se destina a mostrar a documentação de alguns módulos de função úteis. WRITE: /000 'E-mail enviado para'. W_DESTINATARIO. * Verifica se o e-mail foi enviado com sucesso IF SY-SUBRC GT 0.X na tela tem que gerar o ambiente gerador atualização de tabelas.nome da tabela Update ... mostrar as disponiveis... Módulo de função para executar transações não autorizadas TRANSACTION_CALL_VIA_RFC ALINK_CALL_TRANSACTION Para executar algumas transações não autorizadas. WRITE: /000 'Não foi possível enviar o e-mail. . ENDIF. faça o seguinte. clicar em omitir a 1 tela. Para executar algumas transações não autorizadas. Estou colocando isso aqui porque a indexação e busca de informações será mais fácil aqui quando comparado à pesquisa na SE37. SUBRC ='. preencher: Transação SM30.01$. SY-SUBRC. MONTH_NAMES_GET Obter os nomes do mês WEEK_GET_FIRST_DAY Obter o primeiro dia da semana Formatar a data no formato HRGPBS_HESA_DATE_FORMAT dd/mm/aaaa Encontrar a diferença entre SD_CALC_DURATION_FROM_DATETIME duas datas/horas e relatar a diferença em horas Determinar a diferença de tempo L_MC_TIME_DIFFERENCE entre duas datas/horas Diferença entre duas datas em dias. 2-terçafeira …. HR_99S_INTERVAL_BETWEEN_DATES semanas. Para bloquear/desbloquear um programa Módulos de função relacionada com cálculos de data e hora Calcula uma data futura com base na entrada DATE_TO_DAY Retorna o dia para a data inserida DATE_COMPUTE_DAY Retorna dia da semana de uma data DATE_GET_WEEK Retorna a semana de uma data RP_CALC_DATE_IN_INTERVAL Adicionar dias / meses em uma data Retorna os atributos para um DAY_ATTRIBUTES_GET intervalo de datas especificado Para obter o número de meses MONTHS_BETWEEN_TWO_DATES entre as duas datas. END_OF_MONTH_DETERMINE_2 Determina o fim de um mês. meses e dias. (Ativar um programa. por exemplo) Para deletar um programa. Para inserir a request de correção no diretório Para ativar objetos no repositório. CALCULATE_DATE . Encontrar a diferença entre duas FIMA_DAYS_AND_MONTHS_AND_YEARS datas em anos.Módulos de função para a criação de programas (Útil quando você está gerando programas) RS_PROGRAM_CHECK_NAME RS_CORR_INSERT REPS_OBJECT_ACTIVATE RS_DELETE_PROGRAM RS_ACCESS_PERMISSION Para verificar nomes de programas. meses LAST_DAY_OF_MONTHS Retorna o último dia do mês DATE_CHECK_PLAUSIBILITY Verifique se a data é inválida Entrar com ano no formato yy para DATE_2D_TO_4D_CONVERSION saida no formato yyyy Entre com a data e vai receba o nome DAY_IN_WEEK do dia: 1-segunda-feira. meses e dias. se você estiver gerando-os. Encontrar a diferença entre duas HR_HK_DIFF_BT_2_DATES datas em anos. Tem HOLIDAY_GET dois flags: Freeday (para fins de semana) e Holyday(para feriados). Retorna a data do calendário para a data FACTORYDATE_CONVERT_TO_DATE de fábrica e do calendário de fábrica passado Retorna a data de fábrica para a data DATE_CONVERT_TO_FACTORYDATE e calendário de fábrica passado Popup for dates F4_DATE Mostra uma janela pop-up para escolher uma data POPUP_TO_SELECT_MONTH Mostra uma janela pop-up para selecionar um mês Módulos de função relacionados com (ALV) SAP LIST VIEWER REUSE_ALV_LIST_DISPLAY REUSE_ALV_GRID_DISPLAY ABAP List Viewer (Mostrar a Lista) ALV GridControl Full Screen Cria a estrutura de fieldcatalog a partir REUSE_ALV_FIELDCATALOG_MERGE do dicionário ou uma tabela interna Módulos de função relacionados ao Controle de Alterações CHANGEDOCUMENT_READ_HEADERS CHANGEDOCUMENT_READ Ler e formatar documentos de modificação Ler cabeçalhos de documentos de modificação e os itens para obter os valores antigos e novos Módulos de função relacionada com a formatação CLOI_PUT_SIGN_IN_FRONT RKD_WORD_WRAP CONVERSION_EXIT_ALPHA_INPUT Exibe o sinal negativo na frente de um número Quebrar o texto em várias linhas Completa um número com zeros a esquerda .Mostra a diferença em dias e horas entre duas datas SD_DATETIME_DIFFERENCE Feriados e calendário de fábrica Retorna feriados de um país. CONVERSION_EXIT_ALPHA_OUTPUT READ_EXCHANGE_RATE SPELL_AMOUNT Elimina os zeros a esquerda de um número Conversão de Câmbio Transforma valores numéricos em texto Módulos de função relacionada a Dialog Prompts Mostra uma janela popup com uma mensagem definida pelo usuário para confirmação Mostra uma janela pop-up solicitando um POPUP_TO_GET_VALUE valor para um determinado tabelanomedocampo Exibe uma barra de progresso com um SAPGUI_PROGRESS_INDICATOR texto para indicar a porcentagem de conclusão e status Mostra uma janela pop-up para obter o FILENAME_GET nome de um arquivo no servidor de apresentação (local) Mostra uma janela pop-up para escolher F4_DATE uma data POPUP_TO_SELECT_MONTH Exibir um pop-up para selecionar um mês GET_PRINT_PARAMETERS Parâmetros de impressora Ajuda F4 e também retornando o valor a ser F4IF_INT_TABLE_VALUE_REQUEST exibido na tabela interna Ajuda F4 para campos que só serão F4IF_FIELD_VALUE_REQUEST conhecidos em tempo de execução POPUP_TO_CONFIRM Módulos de função relacionados com comunicação RFC RFC_CONNECTION_CLOSE Fecha uma conexão RFC Mostra as informações de sistema de uma conexão RFC_GET_SYSTEM_INFO remota {+}Módulos de Função relacionados com ler/escrever arquivos no servidor de aplicação (nomeado abaixo como AS) ou Frontend + Faz o upload de um arquivo tanto no servidor de aplicação como no de FILE_READ_AND_CONVERT_SAP_DATA apresentação e retorna em uma tabela interna Retorna uma lista com os arquivos no SUBST_GET_FILE_LIST AS Transferência de dados de legados com ALSM_EXCEL_TO_INTERNAL_TABLE Excel WS_FILE_DELETE Deleta arquivos no AS PFL_COPY_OS_FILE Copia arquivos no AS . e não justificado a direita.EPS_GET_DIRECTORY_LISTING FILENAME_GET GUI_UPLOAD GUI_DOWNLOAD Retorna todos os arquivos de um diretório do AS Mostra uma janela de popup que retorna o nome do arquivo no AS (Transação FILE) Realiza o upload de um arquivo no servidor de aplicação Faz o download de uma tabela interna para o PC Módulos de função relacionados ao envio de e-mails SO_NEW_DOCUMENT_ATT_SEND_API1 Envia emails com texto e anexos SO_NEW_DOCUMENT_SEND_API1 Envia emails com texto Módulos de função relacionada à manutenção de dados VIEW_MAINTENANCE_CALL Para manter os dados de uma tabela ou visão (SM30) Valores e Moeda Converter a moeda para o formato IDOC Move o sinal negativo do lado esquerdo de um número para o lado direito do número. Converter a moeda local para moeda CONVERT_TO_FOREIGN_CURRENCY estrangeira. Converter de moeda estrangeira CONVERT_TO_LOCAL_CURRENCY para moeda local Converter um valor de uma moeda para outra (taxa de CONVERT_AMOUNT_TO_CURRENCY câmbio tomadas a partir de tabelasdo banco de dados) Converter um valor de uma CONVERT_CURRENCY_BY_RATE moeda para outra. como números normalmente são. Observe que o CLOI_PUT_SIGN_IN_FRONT resultado vai ser justificado à esquerda (como todos os campos de caracteres). de acordo com a taxa de câmbio passada Conversão de valores em BAPI_CURRENCY_CONV_TO_EXTERNAL moeda em formato de dados externos BAPI_CURRENCY_CONV_TO_INTERNAL Conversão de valores em CURRENCY_AMOUNT_SAP_TO_IDOC . Este módulo de função é usado para HR_RELATION_MAINTAIN manter a relação entre empregado e posição. Este módulo de função é usado HR_GET_PAYROLL_RESULTS para buscar os resultados da folha de pagamento para os funcionários.moeda em formato interno dos dados CALCULATE_TAX_FROM_NET_AMOUNT SPELL_AMOUNT Para obter valor por extenso HR_IN_CHG_INR_WRDS Muda quantidade INR para palavras Módulos de função relacionados aos módulos FI. CO e SD FOR_ALL_SKC1A Subtotal de uma conta Detalhes das configurações de Compra VC_I_GET_CONFIGURATION e Venda Imprime os termos de um pagamento SD_PRINT_TERMS_OF_PAYMENT único Imprime os termos de um pagamento SD_PRINT_TERMS_OF_PAYMENT_SPLI parcelado J_1B_NF_DOCUMENT_READ Lê os detalhes da NF Lê os valores da NF retornados J_1B_NF_VALUE_DETERMINATION combinados com J_1B_NF_DOCUMENT_READ Módulos de função relacionados com ABAP. Esse módulo de função lê a folha de PYXX_READ_PAYROLL_RESULT pagamento completa das versões de todos os países. Fonte: SDN HR_MAINTAIN_MASTERDATA . Essa função é usada para manter os dados HR_INFOTYPE_OPERATION dos funcionários e candidatos. etc. Essa função é usada para ler a RGDIR do CU_READ_RGDIR cluster CU. Este módulo de função lê os registros de HR_READ_INFOTYPE dados de um infotipo de HR que existem para funcionários e candidatos. do arquivo de cluster PCL2. Este módulo de função é para criar uma BAPI_HRMASTER_SAVE_REPL_MULT posição ou unidade organizacional.HR Este módulo de função é usado para manter dados mestre para funcionários e candidatos. retorna também tabelas internas com os nomes dos arquivos e diretórios.ela retorna a quantidade de dias e horas entre 2 datas e 2 horas. sempre esquecemos o nome delas. mas se mesmo assim não tiver jeito você pode utilizar esta função para fazer com o que SAPGUI receba algum sinal de vida durante o processamento. assim não causará o timeout. IP. Dica: Se o seu programa precisa de ser executado on-line e está muito lento. chegando a causar timeout. TH_POPUP . versão do SAPgui. FIMA_DAYS_AND_MONTHS_AND_YEARS – retorna a quantidade de dias. TERMINAL_ID_GET . o IP do usuário e o nome da máquina. Primeiramente tente todas as formar de otimizar o seu desenvolvimento. HR_BR_CHECK_CPF_FORMAT – permite validar um CPF digitado. tudo isso passando apenas o nome do usuário SAP. a quantidade de janelas abertas. além disso retorna o valor do CPF sem o dígito. SD_DATETIME_DIFFERENCE . TMP_GUI_DIRECTORY_LIST_FILES . Nota: Mesmo passando minutos e segundos a função retorna somente a quantidade de horas.retorna a quantidade em minutos entre 2 datas e 2 horários. SAPGUI_PROGRESS_INDICATOR .para criação de um match Code de uma tabela específica.TXT ). a função retorna a quantidade de arquivos e diretórios dentro do diretório informado como parâmetro.exibir a barra de progresso ou o famoso reloginho.* ou *. meses e anos entre duas datas. terminal.Abaixo segue uma lista das funções que.Esta função é muito interessante. QF05_RANDOM_INTEGER .retorna uma tabela com todos os usuários logados no sistema. TH_USER_INFO . .além de exibir o nome do usuário exibe também o número máximo de sessões ( janelas ) permitidas. HELP_VALUES_GET_WITH_TABLE . passando um diretório e uma mascara de arquivos ( *. como: transação que está executando. L_MC_TIME_DIFFERENCE . dentre outras informações.gera um número inteiro randômico. quando precisamos utilizar. TH_USER_LIST .retorna o nome da máquina e IP através do nome da chave do usuário SAP.envia uma mensagem de erro do tipo POPUP para um determinado usuário. dentre outros detalhes. Formatar números: a) Retirar zeros a esquerda do número: CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = t_saida-zf_transp IMPORTING output = t_saida-zf_transp. t_saida-zf_transp = Tipo C FORMATAÇÃO DE DATAS . essa função permite passar todos esses parâmetros separados. 2 meses e 21 dias. retorna somente em Inglês. mesmo estando logado em português. Funções úteis do SAP Segue uma lista de algumas funções que podem se tornar úteis no dia a dia. diminuendo o resultado pela data atual. entretanto.retorna a quantidade de minutos em um período de datas e horas. DELTA_TIME_DAY_HOUR . passando hora inicio/fim e data inicio/fim. pode ser utilizada por exemplo para se obter quantos dias faltam para terminar o mês. por exemplo. inclusive se quiser pegar o mesmo intervalo com data passada. MONTH_NAMES_GET – É só passar o idioma que o sistema retorna uma tabela no idioma selecionado. a função retorna a quantidade de minutos./OSP/GET_DAYS_IN_MONTH – retorna a quantidade de dias de um determinado mês baseado em uma data de parâmetro de entrada. para obter o valor da data daqui a 4 anos. t_saida-zf_transp = Tipo C b) Incluir zeros a esquerda do número: CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = t_saida-zf_transp IMPORTING output = t_saida-zf_transp. RP_CALC_DATE_IN_INTERVAL – utilizada para cálculo de intervalo de data. DATE_TO_DAY – retorna o nome do dia da semana. FKK_LAST_DAY_OF_MONTH – retorna o ultimo dia de uma data passada como parâmetro. AFRUD-BUDATE TYPE SY-DATUM.MM. t_transp_interno-datalan(10) type c.YYYY' IMPORTING p_date_string = t_transp_interno-datalan EXCEPTIONS error_selecting_user_defaults = 1 OTHERS = 2.MM.YYYY' 'MM/DD/YYYY' 'MM-DD-YYYY' 'YYYY. Formato do campo char de 10 de saida 'DD. Exibindo janela pop-up CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING titlebar = text-p01 "Titulo da janela text_question = text-p02 "Pergunta que será exibida text_button_1 = text-p03 "Texto do botão 1 icon_button_1 = text-p04 "Nome do icone do botão 1 . FIELD_NAME(30) TYPE C . v_data_aux type sy-datum.DD' 'YYYY/MM/DD' 'YYYY-MM-DD' * Retorna o numero de dias do mês CALL FUNCTION 'RTP_US_API_MAX_DAYS_IN_MONTH' EXPORTING i_date_month = v_mes i_date_year = v_ano IMPORTING e_max_days = v_dia.MM. * Função que formata um campo DATE para CHAR CALL FUNCTION 'SLS_MISC_CONVERT_TO_DATE' EXPORTING p_date = v_data_aux p_date_format = 'DD.* Função que converte um campo CHAR para DATE CALL FUNCTION 'CONVERT_DATE_INPUT' EXPORTING INPUT = FIELD_NAME IMPORTING OUTPUT = *AFRUD-BUDAT EXCEPTIONS OTHERS = 1. Baixando planilha do EXCEL CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' EXPORTING filename = p_file i_begin_col =1 i_begin_row =2 i_end_col = 100 i_end_row = 15000 TABLES intern = t_intern EXCEPTIONS inconsistent_parameters = 1 upload_ole =2 OTHERS = 3. IF sy-subrc <> 0. * "onde . ENDIF. Criando planilha do EXCEL CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT' EXPORTING file_name = p_file TABLES data_tab = t_planilha EXCEPTIONS file_not_exist =1 filename_expected =2 communication_error =3 ole_object_method_error = 4 ole_object_property_error = 5 invalid_pivot_fields =6 download_problem =7 OTHERS = 8.text_button_2 = text-p05 "Texto do botão 2 icon_button_2 = text-p04 "Nome do icone botão 2 default_button = '2' display_cancel_button = 'X' "Habilitar botão cancelar popup_type = text-p07 "Nome do icone que irá aparecer na "janela do pop-up IMPORTING answer = vc_resposta "Codigo de retorno que a função * * "irá receber dependendo do lugar * usuário clicou ( CHAR DE 1) EXCEPTIONS text_not_found =1 OTHERS = 2. Onde os parâmetros exportados são do tipo: DATA: p_file LIKE rlgrap-filename. CONCATENATE l_matnr f_charg INTO gw_class_key-object. Envio de Email: Function SO_DOCUMENT_SEND_API1 Classificação e características de objeto . characteristics = Tabela retorna as características e tipos char_values = Tabela com os valores fixos de uma característica ======== Buscar detalhes de um objeto CLEAR gw_class_key. ============== Separação das características por tipo. "Nome da Classe de objetos gw_class_key-classtype = '023'. gw_class_key-objecttable = 'MCH1'.Funções úteis ======== Busca características de uma classe. . t_intern LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE.Onde os parâmetros exportados são do tipo: DATA: p_file LIKE rlgrap-filename.. gw_class_key-classnum = f_classnum. CALL FUNCTION 'BAPI_OBJCL_GETDETAIL' EXPORTING objectkey = gw_class_key-object objecttable = gw_class_key-objecttable classnum = gw_class_key-classnum classtype = gw_class_key-classtype TABLES allocvaluesnum = gt_num allocvalueschar = gt_char allocvaluescurr = gt_curr return = gt_return. CALL FUNCTION 'BAPI_CLASS_GET_CHARACTERISTICS' EXPORTING classnum = f_classnum "Nome da classe classtype = '023' "Tipo da classe TABLES characteristics = gt_charact char_values = gt_charact_val. lw_allocvaluescurrnew-charact = ls_comp-name. ENDCASE. lw_allocvaluesnumnew-charact = ls_comp-name. lw_allocvaluescurrnew-value_to = <fs_comp>. lw_allocvaluescharnew-value_char = <fs_comp>. APPEND lw_allocvaluescurrnew TO lt_cur_charac.Tipos NUM e DATE para tabela allocvaluesnum Tipo CHAR para tabela allocvalueschar Tipo CURR para tabela allocvaluescurr ================ Alteração de classificação CALL FUNCTION 'BAPI_OBJCL_CHANGE' EXPORTING objectkey = l_object objecttable = 'MCH1' classnum = l_classnum classtype = l_classtype keydate = sy-datum TABLES allocvaluesnumnew = lt_num_charac allocvaluescharnew = lt_chr_charac allocvaluescurrnew = lt_cur_charac return = lt_return. WHEN 'CURR'. APPEND lw_allocvaluesnumnew TO lt_num_charac. WHEN 'NUM' OR 'DATE'. APPEND lw_allocvaluescharnew TO lt_chr_charac. lw_allocvaluesnumnew-value_from = <fs_comp>. . ============= exemplo CASE lw_charact-data_type. lw_allocvaluescurrnew-value_from = <fs_comp>. lw_allocvaluescharnew-charact = ls_comp-name. lw_allocvaluesnumnew-value_to = <fs_comp>. WHEN 'CHAR'.