Dicas ABAP
Funçõ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. ************************************************************************ * CABEÇALHO DA LISTA SECUNDÁRIA * ************************************************************************ * TOP-OF-PAGE DURING LINE-SELECTION.
Modelo Comentário TOP INCLUDE: *----------------------------------------------------------------------* * * * Empresa...: Nome da Empresa * * Programa..: ZIFI_REC_VAR * * Tipo......: INCLUDE * * Módulo....: FI * * Descrição.: Tipos, Constantes e Variáveis Globais * * para XXXXXXXXXXXXXXX. * * 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:
Sites úteis sobre ABAP: http://www.marceloperine.com.br/Abap/ http://www.abapfans.hpg.ig.com.br/sol.htm Apostilas Microsiga: stelling.sites.uol.com.br www.sapworld.hpg.ig.com.br/apostilas.html http://www.sapgenie.com/abap/index.htm https://www.sdn.sap.com/irj/sdn http://help.sap.com http://www.codigofonte.com.br
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, it_operation like bapi1190_opr_c occurs 0 with header line, it_return like bapiret2 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.
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, ex. MARA, 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. data :lc_objectname like bapi1003_key-object. lc_objectname+0(18) = p_matnr.
lc_objectname+18(4) = p_plant. lc_objectname+22(10) = p_batch. clear: p_clobj, it_bapiret2, it_bapiret2[]. 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. check not p_clobj is initial. perform f_bapi_commit_work. endform. " 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 = .
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 = .
BAIXA DE MATERIAL EM ESTOQUE call function 'BAPI_GOODSMVT_CREATE' exporting goodsmvt_header = t_bapi2017_gm_head_01 goodsmvt_code = p_goddsmvt_code
testrun = p_testrun importing materialdocument = p_doc_mat tables goodsmvt_item = t_bapi2017_gm_item_create return = it_bapiret2.
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.
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.
OBTEM CARACTERISTICAS PARA OBJETO E CLASSE * Limpar característica reserva de estoque do lote vc_clobjectkey = p_objek. vc_classnum = c_classe_lote. 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. read table it_values_char with key charact = c_reserva. if sy-subrc eq 0. clear it_values_char-value_char. modify it_values_char index sy-tabix. endif.
ALTERA STATUS DE UMA OP it_bapi_pp_timeticket-orderid = p_op. it_bapi_pp_timeticket-operation = p_operacao. it_bapi_pp_timeticket-fin_conf = p_fin_conf. it_bapi_pp_timeticket-postg_date = p_dt_ini. it_bapi_pp_timeticket-plant = p_werks. it_bapi_pp_timeticket-yield it_bapi_pp_timeticket-scrap
= p_metragem. = p_scrap.
it_bapi_pp_timeticket-conf_quan_unit = p_unidade. it_bapi_pp_timeticket-exec_start_date = p_dt_ini. it_bapi_pp_timeticket-exec_start_time = p_hr_inicio. it_bapi_pp_timeticket-exec_fin_date = p_dt_fim. it_bapi_pp_timeticket-exec_fin_time = p_hr_fim. it_bapi_pp_timeticket-work_cntr = p_centro_trab.
it_bapi_pp_timeticket-conf_activity1 = p_activity. it_bapi_pp_timeticket-conf_acti_unit1 = p_acti_unit1. append it_bapi_pp_timeticket. 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.
COMMIT E ROLLBACK PARA BAPI call function 'BAPI_TRANSACTION_COMMIT'. call function 'BAPI_TRANSACTION_ROLLBACK'.
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.
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.
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.
FUNÇÕES DIALOG DIALOG BOX – ENTRADA DE VALORES DATA it_sval like sval occurs 0 with header line, it_sval-tabname = 'CRHD' ** Tabela it_sval-fieldname = 'WERKS'. ** Nome do Campo it_sval-fieldtext = 'Centro'. ** 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. if vl_resp ne 'J'. leave screen. set screen 0. endif.
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.
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 – Obter dados OBTEM DADOS DA EMPRESA CNPJ... 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.
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.
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.
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. if sy-subrc eq 0. 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
others
= 2.
OBTEM DADOS MRP * Obtem Dados de cabeçalho - documento MRP clear pendencias-matnr. SELECT single matnr dtnum cflag FROM mdkp INTO (pendencias-matnr, pendencias-dtnum, pendencias-CFLAG) WHERE dtart = 'MD' AND matnr = v_matnr AND plwrk = centro AND plscn = 0. 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. call function 'SD_ORDER_CREDIT_RELEASE' exporting vbeln = p_vbeln exceptions error_message = 4.
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.
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.
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. Olhe a coluna HOLIDAY (feriado) e FREEDAY (fim de semana). 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.
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.
SELEÇÃO ARQUIVO * Busca nome de arquivo at selection-screen on value-request for p_arq. call function 'KD_GET_FILENAME_ON_F4' changing file_name = p_arq.
LEITURA ARQUIVO call function 'WS_FILENAME_GET' exporting def_filename = 'log_ZSD03.txt' def_path = 'C:\Temp\' mask = ',*.*,*.*.' 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.
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.
Ver WS_DOWNLOAD, 'LIST_DOWNLOAD'
OUTRAS FUNÇÕES MENSAGEM NO RODAPÉ - STATUS DOS PROCEDIMENTOS perform send_gui(saplcozf) using text-010.
LOGON DO USUÁRIO data: lc_answer like sy-ucomm, lc_senha like xu400-newcode. call function 'SUSR_USER_SURFACE_PASSWORD' importing password = lc_senha okcode = lc_answer.
SCROLLING IN TABLE CONTROL ( Geralemnte Utilizado 'P--' or 'P-' or 'P+' or 'P++'.) form compute_scrolling_in_tc using p_ok.
p_tc_name
*-BEGIN OF LOCAL DATA--------------------------------------------------* data l_tc_new_top_line type i. data l_tc_name like feld-name. data l_tc_lines_name like feld-name. data l_tc_field_name like feld-name. field-symbols type cxtab_control. field-symbols type i. *-END OF LOCAL DATA----------------------------------------------------* assign (p_tc_name) to . * get looplines of TableControl concatenate 'G_' p_tc_name '_LINES' into l_tc_lines_name. assign (l_tc_lines_name) to . * is no line filled? if -lines = 0. * yes, ... l_tc_new_top_line = 1. else. * no, ... call function 'SCROLLING_IN_TABLE' exporting entry_act = -top_line entry_from =1 entry_to = -lines last_page_full = 'X' loops = ok_code = p_ok overlapping = 'X'
* * *
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. if sy-subrc ne 0. message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif. endif. * get actual tc and column get cursor field l_tc_field_name area l_tc_name. if syst-subrc = 0. if l_tc_name = p_tc_name. * set actual column set cursor field l_tc_field_name line 1. endif. endif. * set the new top line -top_line = l_tc_new_top_line. endform.
*
*
*
" 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.
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.
LISTA CAMPOS DA TELA call function 'GET_DYNPRO_LIST' exporting dyname = ls_prog_name dynumb = ln_dynp_num tables dynpro_list = it_dynpro_list. call function 'ALV_LIST_SORTING_DEFINE' exporting i_control = ls_control it_fieldcatalog = lt_fieldcat
i_type = p_listtype changing ct_sort = p_rt_sort[] exceptions no_change =1 others = 2.
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 . if sy-subrc 0. message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif.
SOMA/SUB DIA, MESES, ANOS DE UMA DATA Veja a função RP_CALC_DATE_IN_INTERVAL .... Nesta funcao, vc pode somar dias, meses, e anos. Tanto pode somar como subtrair ( Campo Signum com + ou - ) ... 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.
CALCULO DIGITO VERIFICADOR INSCRIÇÃO ESTADUAL http://www.sef.sc.gov.br/consulta/rotinacritica/rotinaie/calcdigverificIE.htm http://www.abapfans.hpg.com.br/sol/sol0036.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.
ROTINA CONVERSÃO MOEDA call function 'CONVERT_CURRENCY_BY_RATE' exporting
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.
EXIBE VALORES TELA TIPO MATCH CODE * Denominação it_fields-tabname = 'TSPAT'. it_fields-fieldname = 'VTEXT'. it_fields-selectflag = ' '. 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.
OBTER ULTIMO DIA DO MES if p_data is initial. 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. if sy-subrc 0. clear sy-subrc. endif. endif.
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.
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. if sy-subrc 0.
message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif.
MONTAR TABLE CONTROL data: it_nametab like dfies occurs 0 with header line, it_fieldif like field_dif occurs 0 with header line. * Itens do TableControl data: begin of it_line occurs 0, check, vbeln like vbap-vbeln, name1 like kna1-name1, posnr like vbap-posnr, matnr like vbap-matnr, bmeng like vbep-bmeng, vtweg like vbak-vtweg, spart like vbap-spart, zzreg_555 like vbap-zzreg_555, zzreg_abc like vbap-zzreg_abc, zznum_pto like vbap-zznum_pto, zztip_ins like vbap-zztip_ins, idreg_555(7), idreg_abc(7), idnum_pto(7), idtip_ins(7), end of it_line. data: it_record like it_line occurs 0 with header line. it_record[] = it_line[]. clear it_nametab. it_nametab-tabname = p_tabname. it_nametab-fieldname = p_fieldname. it_nametab-position = p_position. it_nametab-offset = p_offset. it_nametab-leng = p_leng. it_nametab-intlen = p_leng. it_nametab-outputlen = p_outleng. it_nametab-datatype = p_datatype. it_nametab-inttype = p_inttype. it_nametab-reptext = p_reptext. it_nametab-keyflag = p_keyflag. append it_nametab. clear it_fieldif. it_fieldif-tabname = p_tabname. it_fieldif-fieldname = p_fieldname. it_fieldif-no_input = 'X'. it_fieldif-fixed_col = ' '. append it_fieldif. * Campos especiais delete it_fieldif where fieldname = 'UMSKS'. delete it_fieldif where fieldname = 'LFREL'. clear it_fieldif. it_fieldif-tabname = 'BSID'. it_fieldif-fieldname = 'UMSKS'. it_fieldif-fixed_col = 'X'. it_fieldif-icon = 'X'. append it_fieldif. clear it_fieldif. it_fieldif-tabname = 'VBEP'. it_fieldif-fieldname = 'LFREL'. it_fieldif-checkbt = 'X'. it_fieldif-no_fky_chk = 'X'. it_fieldif-fixed_col = 'X'. append it_fieldif.
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. case sy-ucomm. when 'OK'. *
Identificar linhas selecionadas it_line-check = c_off. modify it_line transporting check where check = c_on. loop at it_record where check = c_off. it_line-check = c_on. modify it_line index sy-tabix transporting check. endloop. loop at it_line where check = c_on. it_vbap-idprc = c_criv. modify it_vbap transporting idprc where vbeln = it_line-vbeln and posnr = it_line-posnr. endloop. when 'CANC'. stop. endcase.
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.
SO_NEW_DOCUMENT_SEND_API1 Envia Mensagem para for a SAP - Outlook ENVIA MENSAGEM COM LISTA DE VALORES * Montar estrutura it_fields-tabname = 'VBAK'. it_fields-fieldname = 'VBELN'.
append it_fields. it_fields-tabname it_fields-fieldname append it_fields. it_fields-tabname it_fields-fieldname append it_fields. it_fields-tabname it_fields-fieldname append it_fields.
= 'KNA1'. = 'NAME1'. = 'VBAK'. = 'VKORG'. = 'VBAK'. = 'ERNAM'.
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.
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.
FUNÇÃO PARCEIRO call function 'CONVERSION_EXIT_PARVW_INPUT' exporting input = pt_vbpa-parvw importing output = it_bapiparnr-partn_role.
ENVIA MENSAGEM SAPOFFICE * Envia mensagem SAPOFFICE para responsavel por planejamento corte, * 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: st_object_hd_change like sood1. data: t_receivers like soos1 occurs 0 with header line. * Estrutura mensagem st_object_hd_change-objla = sy-langu. "Idioma st_object_hd_change-objnam = 'MENSAGEM'. "Nome documento st_object_hd_change-objdes = p_titulo. "Título st_object_hd_change-objpri = '1'. "Prioridade de documento st_object_hd_change-objsns = 'F'. "Objeto: sensibilidade st_object_hd_change-objcp = 'X'. "Objeto não pode ser modif. st_object_hd_change-vmtyp = 'T'. "Executar: (report, dlg... st_object_hd_change-skips = 'X'. "Executar: 1a.tela em backg
*
st_object_hd_change-acnam = p_acnam.
"Executar: nome (report,...
* Destinatário clear t_receivers. refresh t_receivers. t_receivers-rcdat = sy-datum. t_receivers-rctim = sy-uzeit. t_receivers-sndex = 'X'.
"Data recebimento documento "Hora recebimento documento "Enviar: como expresso
loop at t_user. t_receivers-recnam = t_user-uname. t_receivers-rtunam = t_user-uname. append t_receivers. endloop.
"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. check sy-subrc 0. message e398(00) with text-e21 '' '' ''. endform.
" f_send_sapoffice
EXIBE VALORES EM TELA (Util Match Code) data: begin of t_shstruc occurs 1. include structure shstruc. data: end of t_shstruc. data: begin of t_shvalue occurs 1. include structure shvalue. data: end of t_shvalue. data: ln_value like help_info-fldvalue.
clear: t_shvalue[], t_shvalue, t_shstruc[], t_shstruc. select matnr maktx into table t_makt from makt for all entries in t_stpo where matnr = t_stpo-idnrk and
spras = sy-langu. sort t_makt by matnr ascending. loop at t_stpo. read table t_makt with key matnr = t_stpo-idnrk binary search. check sy-subrc = 0. t_shvalue-line = sy-tabix. t_shvalue-pos = 1. t_shvalue-low_value = t_stpo-idnrk. append t_shvalue. t_shvalue-pos = 2. t_shvalue-low_value = p_werks. append t_shvalue. t_shvalue-pos = 3. t_shvalue-low_value = t_makt-maktx. append t_shvalue. endloop. t_shstruc-pos = 1. t_shstruc-tabname = 'STPO'. t_shstruc-fieldname = 'IDNRK'. t_shstruc-fieldtype = 'CHAR'. t_shstruc-fieldlen = 000018. t_shstruc-keyword = text-e13. t_shstruc-selectflag = 'X'. append t_shstruc. t_shstruc-pos = 2. t_shstruc-tabname = 'T001W'. t_shstruc-fieldname = 'WERKS'. t_shstruc-fieldtype = 'CHAR'. t_shstruc-fieldlen = 000004. t_shstruc-keyword = text-e01. t_shstruc-selectflag = ' '. append t_shstruc. t_shstruc-pos = 3. t_shstruc-tabname = 'MAKT'. t_shstruc-fieldname = 'MAKTX'. t_shstruc-fieldtype = 'CHAR'. t_shstruc-fieldlen = 000040. t_shstruc-keyword = text-028. t_shstruc-selectflag = ' '. append t_shstruc. 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. if sy-subrc = 0. p_matnr = ln_value. endif.
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. it_dynpread-fieldname = 'ZPPT010-WERKS'. append it_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.
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.
MENSAGEM data: it_message like bdcmsgcoll occurs 0 with header line. 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.
MODIFICA CONTEUDO DA TELA data: t_dynpread like dynpread occurs 0 with header line. t_dynpread-fieldname = 'ZPPT010-QTDE_BOB'. t_dynpread-fieldvalue = zppt010-qtde_bob. append t_dynpread. "--> Atualiza campos da tela call function 'DYNP_VALUES_UPDATE' exporting dyname = 'SAPMZPP009' dynumb = sy-dynnr tables dynpfields = t_dynpread .
call function 'F4IF_INT_TABLE_VALUE_REQUEST' exporting retfield = 'IT_DIAUTIL-DATA' dynpprog = sy-cprog dynpnr = '9170' dynprofield = 'IT_WEB003-ZDATA'
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 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.
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.
OBTEM VALOR DE UM CAMPO NA TELA form monta_bukrs_pc. data : begin of t_get occurs 0. include structure dynpread. data : end of t_get. t_get-fieldname = 'EKPO-BUKRS'. " EMPRESA append t_get. t_get-fieldname = 'EKPO-KNTTP'. " CATEGORIA CLASS CONT append t_get. call function 'DYNP_VALUES_READ'
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. if sy-subrc ne 0. message e398(00) with 'Zillo-Exit(wempf) E R R O ' 'Funcao Valor de Tela PC - Subrc = ' sy-subrc. else. clear t_get. read table t_get with key fieldname = 'EKPO-BUKRS'. wbukrs = t_get-fieldvalue. clear t_get. read table t_get with key fieldnam e = 'EKPO-KNTTP'. wknttp = t_get-fieldvalue. endif. PROGRAMA SEJA EXECUTADO EM BACKGROUND DATA: C_REPORT LIKE RALDB-REPORT. C_REPORT = 'ZREPORT'. " report a ser executado em background CALL DIALOG 'JOB_SUBMIT' EXPORTING RALDB-REPORT FROM C_REPORT. COMANDO DE CONTROLE - 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
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, através do parâmetro "frame", cf. 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.
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.
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.
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.
BLOQUEIA ORDEM DE PRODUÇÃO * Bloqueia a OP call function 'CO_RU_ORDER_LOCK' exporting aufnr_imp = vc_op. * Desbloqueia a OP
call function 'CO_RU_ORDER_DEQUEUE' exporting aufnr_imp = vc_op.
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. do 10 times. 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. enddo. st_seqg3-gname = 'MCHA'. st_seqg3-garg = sy-mandt. st_seqg3-garg+03(18) = p_matnr. st_seqg3-garg+21(04) = p_werks. st_seqg3-garg+25(10) = p_charg.
data: vi_number like sy-tabix. data: it_enq like seqg3 occurs 0 with header line. vi_number = 1. * Esperar liberação do bloqueio while vi_number > 0. 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. endwhile.
BLOQUEIO DA ORDEM PLANEJADA call function 'DEQUEUE_EMPLAFE' exporting mode_vbak = 'E' mandt = sy-mandt vbeln = it_plaf_excl-plnum.
BLOQUEIA TABELA call function 'ENQUEUE_E_TABLEE' exporting mode_rstable = 'E' tabname = v_table exceptions foreign_lock = 1
system_failure = 2 others = 3.
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.
BLOQUEIO DO call function 'ENQUEUE_EMMBEWE' exporting matnr = it_key-matnr bwkey = p_werks bwtar ='' exceptions foreign_lock = 01 system_failure = 02 endloop.
PROCESSAMENTO PARALELO PROCESSAMENTO PARALELO form parallel_initialize. clear: wp_total, wp_available, wp_parallel. check p_parall = c_on. 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. if sy-subrc eq 0. wp_parallel = c_on. endif. * GROUP_NAME - Name of group to check * MAX_PBT_WPS - Total number of dialog work processes available in * group * FREE_PBT_WPS - Number of work processes available in group for * parallel processing at this moment * INVALID_GROUP_NAME * Incorrect group name; RFC group not defined. See transaction RZ12 * INTERNAL_ERROR * R/3 System error; see the system log (transaction SM21) for diagnostic * info * PBT_ENV_ALREADY_INITIALIZED * Function module may be called only once; 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; they are busy or * server load is too high
* NO_PBT_RESOURCES_FOUND * No servers in the group met the criteria of > two work processes * defined. * CANT_INIT_DIFFERENT_PBT_GROUPS * You have already initialized one group and have now tried initialize a * different group clear: wp_snd_jobs, wp_rcv_jobs, wp_taskname. refresh it_pack_caufv.
if wp_parallel = c_off. call function 'Z_PPF009' exporting pi_parallel = wp_parallel tables t_caufv = t_caufv t_jest = it_jest. else. * Divide the records into work packets wp_jobs = wp_available / 2. wp_packs = vn_lines / wp_jobs. if wp_packs = 0. wp_packs = vn_lines. wp_jobs = 1. endif. it_save[] = t_caufv[]. clear t_caufv. refresh t_caufv. vi_ini = 1. vi_fim = wp_packs. do. clear it_pack. refresh it_pack. append lines of it_save from vi_ini to vi_fim to it_pack. 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. if sy-subrc eq 0. wp_snd_jobs = wp_snd_jobs + 1. wp_taskname = wp_taskname + 1. endif. wp_jobs = wp_jobs - 1. if wp_jobs vn_lines. vi_fim = vn_lines. endif. if wp_jobs = 1 and vi_fim < vn_lines. vi_fim = vn_lines. endif. enddo.
wait until wp_rcv_jobs >= wp_snd_jobs. append lines of it_pack_caufv to t_caufv. refresh it_pack_caufv. describe table t_caufv lines sy-tmaxl. if sy-tmaxl vn_lines. message s575(ck). stop. endif. endif. sort t_caufv by aufnr. delete t_caufv where ente = c_on. 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. sort it_afpo by aufnr posnr. endif.
CONSISTENCIA CGC/CFP function field_exit_stcd1. * Tabela interna para uso em Fornecedores data: begin of it_lfa1 occurs 0, lifnr like lfa1-lifnr, stcd1 like lfa1-stcd1, name1 like lfa1-name1. data: end of it_lfa1. * Tabela interna para uso em Clientes data: begin of it_kna1 occurs 0, kunnr like kna1-kunnr, stcd1 like kna1-stcd1, name1 like kna1-name1. data: end of it_kna1. data: vc_lifnr like lfa1-lifnr. data: vc_kunnr like kna1-kunnr. data: vc_ktokd like kna1-ktokd. output = input. if input is initial. exit. endif. * 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' . get parameter id 'LIF' field vc_lifnr. select lifnr stcd1 name1 into table it_lfa1 from lfa1 where stcd1 = input. if sy-subrc ne 0. exit. else. delete it_lfa1 where lifnr = vc_lifnr.
loop at it_lfa1. message e398(00) with text-001 it_lfa1-lifnr it_lfa1-name1. endloop. endif. endif. * 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'. get parameter id 'KUN' field vc_kunnr. select single ktokd into vc_ktokd from kna1 where kunnr = vc_kunnr. if sy-subrc = 0 and vc_ktokd = 'RECE'. exit. endif. select kunnr stcd1 name1 into table it_kna1 from kna1 where stcd1 = input. if sy-subrc ne 0. exit. else. delete it_kna1 where kunnr = vc_kunnr. loop at it_kna1. message e398(00) with text-002 it_kna1-kunnr it_kna1-name1. endloop. endif. endif. endfunction.
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.
OBTEM DADOS DA FATURA CALL FUNCTION 'J_1B_NF_VALUE_DETERMINATION' EXPORTING nf_header = wk_header
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.
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.
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. TH_LONG_USR_INFO => Lista em uma tabela as informações de sessão, usuário, transação e modo.
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... sempre que vc desenvolver/alterar um formulario(sapscript) em um client... (de desenvolvimento por exemplo) e quiser testar este em outro client voce deve primeiro fazer a copia deste no client que vc quer testar... para isso vc deve executar o programa RSTXR3TR. OU a transação SCC1. não se esqueça de informar a request informar request , Eexport, sistema file: GUI, c:\zmedruck.txt
TABELAS MAIS UTILIZADAS DD* - 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 - Idiomas T006 – Unidade de Medida T015Z - Algarismos e números por extenso T020R – Programas e Transações TSTC – Transações CDHDR e CDPOS - todas as transações realizados no R/3. FI/CO BKPF - Cabeçalho de Documentos Gerais de FI
BSAD - Itens de Partidas Compensadas de Clientes BSAK - Itens de Partidas Compensadas de Fornecedores BSAS - Itens de Partidas Compensadas de Contas do Razão BSEG - Itens de Documentos Gerais de FI BSID - Itens de Partidas em Aberto de Clientes BSIK - Itens de Partidas em Aberto de Fornecedores BSIS - Itens de Partidas em Aberto de Contas do Razão COBK - Cabeçalho do Documento Nº CO Referente ao Período COEP - Partidas no CO Referente ao Período COSP - Valores das Ordens de Investimento e Outras Ordens CSKS - Mestre de Centro de Custo CSKT - Texto de Centro de Custo GLT0 - Mestre da Conta do Razão (Movimentação no Período) GLT1 - Totais para General Ledger Local J_1AT059Z - Códigos de IRF (Nova Funcionalidade) J_1AWITH - Dados de Operações de IRF J_1AWTOFF - Código Oficial de Imposto de Renda na Fonte SKA1 - Mestre das Contas do Razão T001S - Encarregado da Contabilidade T011 - Estrutura de Balanço L/P T030A - Operações (Ex. "WIT" Operações de IRF) T894 - Versões de Ledger TBSL - Mestre da Chave de Lançamento TBSLT - Denominação das Chaves de Lançamento TGSB - Divisões TGSBT - Denominação das Divisões TKA01 - Área de Contabilidade de Custos TKA09 - Opções Básicas Versões de Ordens TKA50 - Perfis de Planejador - Tabela de Entidades TKO08 - Área de Apropriação de Custo para Ordem TKO09 - Texto para Área de Apropriação de Custo para Ordem TTXD - Descrição da estrutura do código de localização fiscal MM EKBE - Histórico de Documento de Compras EKKN - Classificação Contábil de Documento de Compras EKKO - Cabeçalho de Documento de Compras EKPO - Item de Documento de Compras MAKT - Textos breves de Materiais MARA - Mestre de Materiais MARC - Dados de centro para material MARM - Unidades de medida para material MBEW - Avaliação do Material MCHB - Estoques de lotes MCHA - Lotes MARD - Segmento de depósito/de lotes mestre de material MAST - Ligação material - lista técnica MKPF - Cabeçalho de Documento de Materiais (Movimentações) MSEG - Item de Documento de Materiais (Movimentações) MBEW - Avaliação do material T134T - Denominação dos Tipos de Material IKPF - Cabeçalho do documento de inventário MDKP - Dados de cabeçalho - documento MRP MDRS - Visão leitura necessidades dependentes/reserva material EBAN - Requisição de compra T457T - Denominação elementos MRP MVER - Consumos de material PP AFKO - Cabeçalho da Ordem PCP AFPO - Item da Ordem PCP
AFVV – Operação da ordem( quantidades/datas/valores) AFVC – Operações da Ordem (centro de trabalho) AUFK - Mestre de Ordens AFRU - Confirmações de ordens CAUFV - Visão dos cabeçalhos de ordens PCP/RK MAST - Ligação entre Materiais (Lista Técnica) PLAF - Ordem Planejada PLKO – Plano Roteiros – cabeçalho PLPO – Operações Roteiros PLAS - Roteiro - seleção de itens PLKV - Visão p/dados cabeç.ord.planej. PLKZ - Lista de tarefas: cabeçalho central STKO - Cabeçalho de lista técnica STKO - Cabeçalho da Lista Técnica STPO - Item da Lista Técnica RESB – Componentes da ordem (reservas/necessidades dependentes) T003P - Textos de Tipos de Ordens SE35 – Modulo Dialogo SD J_1BBRANCH - Filial do CNPJ J_1BNFDOC - Nota Fiscal - Cabeçalho J_1BNFLIN - Nota Fiscal - Itens LIKP - Remessa/Fornecimento - Cabeçalho LIPS - Remessa/Fornecimento - Itens T171T - Clientes Zona de Distribuição - Textos TVFK - Documento de Faturamento - Tipo de Documento TVGRT - Unidade de Organização - Grupo de Vendedores VBAK - Ordens de Venda - Cabeçalho VBAP - Ordens de Venda - Itens VBFA - Fluxo de Documento de Venda VBRK - Faturamento - Cabeçalho VBRP - Faturamento – Itens VBPA - Documento VD: parceiro VTTK - Transporte - Cabeçalho VTTP - Transporte - Itens XLIPS TVTWT – Descrição do Canal de Distribuição GERAL AUSP - Valores das modalidades das características JEST – Status individual por objeto (ordem e status) CABM - Característica CABNT - Textos para características CAWN - Valores da característica CAWNT - Textos para valores CDHDR - Cabeçalho do documento de modificação CDPOS - Itens do documento de modificação E070 - Sistema de transporte: cabeçalho de ordens/tarefas E071 - Sistema de transporte: entradas de objeto de ordens/tarefa
TRANSAÇÕES SE63 - 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
SM51 – Derruba sessão do usuário SM12 – Objetos travados por usuários WEDI -- IDOC e Base EDI SXDB - Transferência Dados de Controle – Direct Input SXDA- Transferência Dados de Controle – Direct Input SE84 – Classe de Mensagens (transporte da classe) FIBF – Fluxo de Caixa ( BTE - 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 -- essa transação atualiza material via RFC para OCS ( siStema de Gerenciamento de WM por Coletor ). 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. 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.000 o servidor não está aguentando tanto R3 e OCS. Alguem tem essa transação alterado para atualização por lotes? VOFM - Formulas SE39 - Compara dois fontes SCC1 – Copia formulário entre mandantes STAT - Log de programas ativos no servidor GCt9 – Transportar regras de validação SE18 / SE19 - 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. REFRESH ITAB. OPEN DATASET ARQ_ENT FOR INPUT IN TEXT MODE. DO. CLEAR ITAB. READ DATASET ARQ_ENT INTO ITAB. IF SY-SUBRC NE 0. CLOSE DATASET ARQ_ENT. EXIT. ENDIF. APPEND ITAB. ENDDO. CLOSE DATASET ARQ_ENT.
CRIAÇÃO DE QUERY Criar uma Query vá na transação SQ03 e crie um grupo de usuários, 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, e depois vá no menu mbiente->Queries (ou transação SQ01 ) e crie a Query com base no infoset criado...
ANALISE PERFORMANCE transacao SE30 para rodar o programa atraves dela. Ao final do programa, clicar em voltar e aparecera um botao "Analise". Ao clicar no botao, aparece uma analise de tempo de execucao, mostrando a porcentagem da execucao. Existem duas barras, uma indicando porcentagem de acesso a banco e outra porcentagem de processamento. A porcentagem de acesso a banco nao deve ultrapassar 80% para reports. O ideal eh que fique bem abaixo disso. Nesta tela ha um botao que mostra quais tabelas foram mais acessadas. A partir desta analise, descobre-se qual select deve ser otimizado. Depois, va para a transacao ST05 e ative o trace do SQL. Em outra sessao do mesmo mandante, rode novamente o programa. Ao final do programa, desative o trace e liste. Voce vera uma relacao de acessos, as vezes bem grande. Clique no nome da tabela acessada e no botao "Explain SQL". Na parte de baixo da nova tela, aparecera o custo do acesso. O custo NUNCA podera ser superior a 15. Se for, estude uma chave alternativa de acesso para o WHERE ou crie um indice para a tabela. Para criar o indice, envolva o Basis, para não prejudicar atualizacoes. Sites ABAP http://ifr.sap.com/catalog/query.jsp (Interface repository) - BAPI http://wwwext.sapag.de/solutions/technology/bapis/preview/catalog45a/bo _fi.htm http://www.sap.com/solutions/technology/bapis/edu/docu/caalbe/caalbe.h tml http://www.sap.com/solutions/technology/bapis/bapi.htm http://www.sap-ag.de/solutions/technology/bapis/index.htm http://www.netstoreusa.com/cbbooks/020/0201674750.shtml Ver no Sap Script: FORMATOS DE CARACTERES Cod Barras: xxxxxx – Codigo de Barras https://www002.sap-ag.de/cfm
LIST VIEW DATA: it_saida TYPE st_saida OCCURS 0 WITH HEADER LINE, it_saida2 TYPE STANDARD TABLE OF st_saida INITIAL SIZE 0. *------ VARIAVEIS -----------------------------------------------------* * Armazena dados da linha que foi selecionada DATA: wa_saida LIKE LINE OF it_saida2. * 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, cl_gui_custom_container, cl_gui_alv_grid, cl_gui_alv_grid.
lvc_s_layo, stb_button, sy-repid, REF TO cl_gui_alv_grid, c, sy-ucomm, lvc_t_fcat, LINE OF gt_fieldcat, lvc_s_sort, lvc_s_sort OCCURS 0.
*------ CLASSES -------------------------------------------------------* *---> Definição CLASS lcl_event_receiver DEFINITION. PUBLIC SECTION. CLASS-METHODS: handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id. PRIVATE SECTION. ENDCLASS. *---> Implementation CLASS lcl_event_receiver IMPLEMENTATION. METHOD handle_hotspot_click. IF e_column_id = 'PO_NUMBER'. CLEAR it_saida. READ TABLE it_saida2 INDEX e_row_id-index INTO it_saida. REFRESH: it_saidanf. PERFORM exibe_nf. ENDIF. ENDMETHOD. "handle_hotspot_click
ENDCLASS. MODULE create_objects_nf OUTPUT. g_repid = sy-repid. IF g_custom_container2 IS INITIAL. CREATE OBJECT g_custom_container2 EXPORTING container_name = 'V_CTRL_NF'. CREATE OBJECT alv_grid2 EXPORTING i_parent = g_custom_container2. ELSE. CALL METHOD alv_grid2->refresh_table_display EXCEPTIONS finished = 1 OTHERS = 2 . IF sy-subrc 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDIF. ENDMODULE.
" create_objects_NF
OUTPUT
MODULE transfer_data__nf OUTPUT. CLEAR: gs_layout, wa_fieldcat, gt_fieldcat[]. * Define Layout gs_layout-grid_title gs_layout-detailtitl gs_layout-zebra gs_layout-keyhot gs_layout-numc_total
= = = = =
text-001. text-005. 'X'. 'X'. 'X'.
* Define Estrutura CLEAR wa_fieldcat. wa_fieldcat-fieldname wa_fieldcat-tabname wa_fieldcat-reptext APPEND wa_fieldcat TO
= 'DOCNUM'. = 'J_1BNFDOC'. = 'Documento'. gt_fieldcat.
CLEAR wa_fieldcat. wa_fieldcat-fieldname wa_fieldcat-tabname wa_fieldcat-reptext APPEND wa_fieldcat TO
= 'DOCDAT'. = 'J_1BNFDOC'. = 'Data NF'. gt_fieldcat.
* * * * *
" 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 =
* * * * * * *
* *
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 . IF sy-subrc 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. SET HANDLER lcl_event_receiver=>handle_hotspot_click FOR ALL INSTANCES. CALL METHOD alv_grid2->set_toolbar_interactive. CALL METHOD cl_gui_control=>set_focus EXPORTING controL = alv_grid2.
ENDMODULE.
" transfer_data__NF
OUTPUT
COLOCAR TOP OF PAGE st_print-NO_COLWOPT = 'X'. st_print-PRNT_TITLE = 'X'.
COLOCAR CELULA EM VERMELHO types: Begin of st_saida, AS4USER like e070-AS4USER, TRKORR like e070-TRKORR, OBJ_NAME like e071-OBJ_NAME, AS4TEXT like E07T-AS4TEXT, tabcolor type lvc_t_scol, End of st_saida. Data: ls_outtab
" " " "
Usuário Request Objeto Descrição do Usuário
type st_saida.
" Aqui terá os dados a serem exibidos em tela DATA: it_saida type st_saida OCCURS 0 WITH HEADER LINE. data: ls_tabcolor type lvc_s_scol. " sendo que gs_layout é aquela estrutura que a gente define o titulo do relatorio... gs_layout-CTAB_FNAME = 'TABCOLOR'. loop at it_saida. if sy-tabix = 2. ls_tabcolor-color-col ls_tabcolor-color-int ls_tabcolor-color-inv ls_tabcolor-nokeycol ls_tabcolor-fname
= = = = =
'6'. " Numero da cor 6 é o negativo . 0. " 0 = INTENSIFIED OFF 1 = INTENSIFIED ON 1. " 0 = FUNDO CELULA, 1 = CARACTER 'X' . 'TRKORR' .
" BOM PARA ATUALIZA A TABELA FINAL QUE EXIBE REALMENTE OS DADOS TEM QUE FAZER ESTAS " ATUALIZAÇÕES AQUI. TEM QUE INSERIR OS DADOS DO TABCOLOR EM UMA TABELA AUXILIAR] " PARA DEPOIS ATUALIZAR A TABELA IT_SAIDA.. insert ls_tabcolor into table ls_outtab-tabcolor. modify it_saida index sy-tabix from ls_outtab transporting tabcolor. endif. endloop.
FIELD_EXIT_SYPDEST - exit para o elemento de dados SYPDEST, 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. Se nao me engano, para achar os valores, utilizei as tabelas T005 e TTXD, ACENTUAR LETRAS letters = 'ÁAÁAÃAÂAÇCÉEÉEÍIÌIÓOÒOÔOÕOÚUÙU. '. TRANSLATE SUA_FRASE USING LETTERS. CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS' EXPORTING INTEXT = TABPF IMPORTING OUTTEXT = TABPF EXCEPTIONS OTHERS = 01. Para criar uma field-exit na 4.6 entre na transação SE38 e execute o programa RSMODPRF, aparecerá um campo, informe o nome do campo, e execute o programa Por exemplo: STCD1 Ira criar a seguinte função EXIT_STCD1_001 Coloque a programa desejada, ao final da programa volta para a tela aonde foi informado o nome do campo, limpe o campo e execute novamente o programa, irá exibir a tela aonde o field-exit deverá ser amarrado. Selecione todos os programas e telas desejado e ative. Está pronto a field-exit, maiores informações pode ser adquirido na nota 29377 CMOD, entrar PRFB no OK-CODE – SE93 MUDAR TASK Programa local - se80 objetos de programa, processar, objeto desenvolvimento, deslocar, colocar classe desejada, criar a task. MARGEM DO RELATÓRIO SET MARGIN x y. FUNÇÃO FORMATA CGC CONVERSION_EXIT_CGCRT_OUTPUT CONVERSION_EXIT_CGCBR_OUTPUT. HR_BR_CHECK_CGC_FORMAT - CNPJ HR_BR_CHECK_CPF_FORMAT - CPF APLICAÇÃO VISUAL BASIC – EXECUTAR O SAPGUI Resp1: tente utilizar o comando SHELL Resp2: Primerio marque "SAP Logon Control" em Components. Dim Functions As Object Dim GetCustomers As Object Dim Customers As Object Set Functions = CreateObject("SAP.Functions") Functions.Connection.Destination = "B20" With Functions.Connection .ApplicationServer = "" ' Instância Não é Necessário .Client = "" ' Código do Client .User = "" ' User Name .Password = ""
.Language = "P" End With If Functions.Connection.Logon(hWnd, True) = False Then MsgBox "Connection Failed" End If CONECÇÃO DOIS CLIENT´S DIFERENTES(INDEPENDENTE MESMA INSTANCIA) Mas é exatamente isso que quero, independente da mesma instancia ( Maquina ), quero conectar 2 Clients de maneira que possa comparar e enviar dados de um para o outro, sem ter que gerar arquivo e fazer interfaces..... Verifique se uma destas funções lhe servem: RFC_READ_TABLE ou RFC_GET_TABLE_ENTRIES. Use o comando CALL FUNCTION com a adição DESTINATION, por exemplo: CALL FUNCTION 'RFC_READ_TABLE' DESTINATION 'QAS-320' EXPORTING .... .... IMPORTING Qualquer dúvida entre em contato. Paulo Chagas.
GERAÇÃO DE ARQUIVO MAGNETICO Estou utilizando o PERFORM SET_TRAIL_BLANKS(SAPLGRAP) USING 'X'. antes da function WS_DOWNLOAD ANEXAR ARQUIVO A UM EMAIL SO_NEW_DOCUMENT_ATT_SEND_API1 ENVIO DE EMAIL (UTILIZANDO UNIX) REPORT ZEMAILUNIX. * Nome do arquivo do Unix que será anexado ao e-mail DATA: W_ANEXO LIKE RLGRAP-FILENAME. * Assunto do e-mail DATA: W_ASSUNTO(80) TYPE C. * Destinatário do e-mail DATA: W_DESTINATARIO(80) TYPE C. * Linha de comando do Unix DATA: W_COMANDO(150) TYPE C. * Tabela interna utilizada pela função COMMAND DATA: TI_TABELA(2000) OCCURS 0 WITH HEADER LINE. * Atribuição de valores às variáveis W_ANEXO = '/usr/mot/data/CF2/qsap/ia/out/work/testpo.txt'. W_ASSUNTO = 'Teste de e-mail com arquivo anexo'. W_DESTINATARIO = '
[email protected]'. * Geração do comando para envio de e-mail CONCATENATE 'mailx -s "' W_ASSUNTO '"' w_destinatario '