Manual Jr[Conflito]

July 8, 2018 | Author: Junior Ferreira | Category: Data, Computer Data, Computing, Technology, Cognitive Science
Share Embed Donate


Short Description

Download Manual Jr[Conflito]...

Description

CLUSTER: São todas as tabelas que geram os encargos (cálculos) da folha de pagamento. RUBRICA: São os encargos propriamente ditos (férias, planos, INSS, etc..) na folha de pagamento.

PROGRAMA: ZCM0204 – Programa que o relatório ALV usa cor como destaque. exemplps

FUNÇÃO para ler o CLUSTER: Z_HRCM_PAYROLL_RESULTS_GET. (nesse caso vc está lendo todas as tabelas do CLUSTER.)

Tipos de dados standard para tabelas CHAR = Aceita todos os caracteres com no máximo 255 de comprimento. NUMC= Aceita somente números de no máximo 2 55 posições. INT4 = Aceita números inteiros de 4bytes Maximo de 10 posições. DEC = Campo de calculo ou montante com virgula para casas decimais, comprimento Maximo de 31 posições. String – Sem limite de espaço não é possível usar em chave de tabela.

Exemplo Elementos de dados

WERKS = é um char4 “CENTRO” ou “PLANTA. UNAME = é um char12 “USUÁRIO”. LAND1 = Pai. MANDT = n. do mandante. BUKRS = Código Empresa.

FUNÇÕES HR_GB_DISPLAY_MASTER_DATA: Retornar a tela anterior (Exibindo). Usando o submit em um infotipo você consegue HR_GB_DISPLAY_MASTER_DATA: retornar (back) para o próprio infotipo depois da visualização do submit. HR_MASTERDATA_DIALOG:: Retornar a tela anterior (Editando). Usando o submit em um infotipo você consegue retornar  HR_MASTERDATA_DIALOG (back) para o próprio infotipo depois da visualização do submit 1DK_CALC_YEARS_BETWEEN_DATES:: Função para calcular idade. 1DK_CALC_YEARS_BETWEEN_DATES DATE_CHECK_PLAUSIBILITY:: função para validar se data está dentro do padrão. DATE_CHECK_PLAUSIBILITY TIME_CHECK_PLAUSIBILITY:: função para validar se horas está dentro do padrão. TIME_CHECK_PLAUSIBILITY CONVERT_DATE_TO_INTERNAL: Função para converter data para modelo americano (1999/10/30 DAY_ATTRIBUTES_GET: Ver dias de feriados. SAP_CONVERT_TO_CSV_FORMAT SAP_CONVERT_TO_C SV_FORMAT = Gera arquivo de saída com ponto e virgula no formato csv. CATS_GET_TARGET_HOURS CATS_GET_TARGET_H OURS = Trás o calendário de horário de trabalho do funcionário.

CONVERSION_EXIT_ALPHA_INPUT : preenche espaços com zeros. RS_HDSYS_CALL_TC_VARIANT 'POPUP_WITH_TABLE_DISPLAY_OK' = exibir popup de ok para log. RH_READ_OBJECT = trás descrição da unidade organizacional e outras. SO_DOCUMENT_SEND_API1 SO_DOCUMENT_SEND_API1 = enviar email para SAP OFFICE. TH_POPUP = mensagem para usuário. RP_CALC_DATE_IN_INTERVAL = Calcula data com formulas. CALCULATE_DATE = Calcula datas POPUP_TO_DISPLAY_TEXT = popup com botão continuar. POPUP_TO_CONFIRM = popup com botões de confirmações.

CALL FUNC'SO_DOCUMENT_SEND_API1' FUNC'SO_DOCUMENT_SEND_API1' DESTINATION 'NONE' = RFC envia email. Faz com que o comando GET só preencha os infotipos com os dados do * Período selecionado na tela principal. rp_set_data_interval rp_set_data_interval 'ALL' pn-begda pn-endda.

Classes / métodos CL_GUI_FRONTEND_SERVIC CL_GUI_FRONTEND_SERVICES ES / método DIRECTORY_BROWSER DIRECTORY_BROWSER : informar somente diretório de saída.

COMANDOS: rp-provide-from-last: Coloca em ordem o pernr, pegando o mais recente. rp-provide-from-last p0001 ‘subty’ begda endda. &sap_edit = Incluir registro na se16n SHIFT wa_otimowa_otimo -matri LEFT DELETING LEADING '0'. : Retirar zeros a esquerda.

(EQ, =, NE, , >=, LE, , LT, IMG ref. -> adm.pessoal -> amd.organizacional -> conf.globais -> adm.autorização -> reg.meste do usiario.

CONDIÇÕES CA = Contem algum dos caracteres no conteúdo o mesmo podendo ser char ou string. (exp. CA

“abcd” o comando verifi ca se encontra algum das letras, ele pode encontrar uma ou mais ) CO = Contem apenas um caractere de um conteúdo. . (exp. CO “, ” ou “.” o comando verifica se

encontra um só desses caracteres, ele pode encontrar somente um ) CN= V1 pode conter caracteres que não estão em v2

*TERMO: FieldCat = catalogo de campo, usado para exibir relatório. TIPO DE CLASSE I = Informação S = Sucesso E = Erro W = Aviso = warning

Exemplo Programa de ALV TRI : ZPY141 Exemplo Programa de com MACRO, ALV zebrada: ZCM0204 Logo tipo ALV: * * * * *

Para criar preencher: - Classe = - Objeto = - Item =

um logotipo, deve-se entrar na transação 0FPM002 e PICTURES  OT  Nome do ID da figura

Exemplo apresentação de Soma e SubSoma automática na ALV. FORM z_tm_display_alv_report. gd_repid = sy-repid. t_sortalv-fieldname =  'PERNR' 'PERNR'. . t_sortalv-tabname =  't_output' . t_sortalv-group =  'X'. = 'X' . t_sortalv-subtot = 'X' =  'X'. .  APPEND t_sortalv.  APPEND  t_sortalv.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program i_callback_pr ogram = gd_repid i_callback_top_of_page = 'Z_TOP_OF_PAGE' is_layout = gd_layout it_fieldcat = t_fieldcatalog[] t_fieldcatalog [] i_save = 'X' it_sort

TABLES t_outtab EXCEPTIONS program_error OTHERS

= t_sortalv[]

= t_output = 1 = 2.

Exemplo de programa. tables: zfunc, zcargos. data: vc_cor(1) type c, v_cargo type zcargos-cargo. select-options: s_nome for zfunc-nome no intervals,

s_cargos for zfunc-cod_cargo no intervals, s_data for zfunc-data_admi. select * from zfunc where nome in s_nome and cod_cargo in s_cargos and data_admi in s_data. select single cargo from zcargos into v_cargo where cod_cargo = zfunc-cod_cargo.

*Marcação Zebra. if vc_cor is initial. format color col_normal intensified off. vc_cor = 'x' 'x'. . else. format color col_normal intensified on. vc_cor = ' '. '. endif. write: / zfunc-codfunc, zfunc-nome, zfunc-data_admi, 061 zfunccod_cargo, 071 v_cargo, 091 zfunc-salario. endselect. if sy-subrc 0. message w999 with 'Registro não encontrado.'(001). encontrado.' (001). endif.

*Cabeçalho. top-of-page. write: / 'Codigo' 'Codigo', , 'Funcionario' 'Funcionario', , 049 049'Data 'Data Admis.', Admis.', 061 061'Cod.' 'Cod.', , 071 071'C 'C argo', argo' , 091 091'Salario' 'Salario'. . uline.  ______________________  ___________________________________ __________________________ _________________________ ______________________ _________________ _______

Programa de orientação objeto (pecistente) data: vc_cor(1) type c, v_cargo type zcargos-cargo, t_001 type table of zfunc, wa_001 type zfunc. select-options: s_nome for zfunc-nome no intervals, s_cargos for zfunc-cod_cargo no intervals, s_data for zfunc-data_admi. start-of-selection. select * from zfunc into table t_001 where nome in s_nome and cod_cargo in s_cargos and data_admi in s_data.

*Marcação Zebra. if vc_cor is initial. format color col_normal intensified off. vc_cor = 'x' 'x'. . else. format color col_normal intensified on. vc_cor = ' '. '. endif.

end-of-selection. loop at t_001 into wa_001. select single cargo from zcargos into v_cargo where cod_cargo = wa_001-cod_cargo. write: / wa_001-codfunc, wa_001-nome, wa_001-data_admi, 061 wa_001cod_cargo, 071 v_cargo, 091 wa_001-salario.

endloop. if sy-subrc 0. message w999 with 'Registro não encontrado.'(001). encontrado.' (001). endif.

*Cabeçalho. top-of-page. write: / 'Codigo' 'Codigo', , 'Funcionario' 'Funcionario', , 049 049'Data 'Data Admis.', Admis.', 061 061'Cod.' 'Cod.', , 071 071'C 'C argo', argo' , 091 091'Salario' 'Salario'. . uline.

REPORT

z_gp_popula_usuario MESSAGE-ID zgp.

TYPE-POOLS: vrm. DATA: t_status_usua TYPE osreftab. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01. PARAMETERS: p_nome TYPE zgp002-nome OBLIGATORY, p_dtnasc TYPE zgp002-dt_nasc. SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02. PARAMETERS: p_logra p_numem p_compl p_bairro p_cidade p_estado p_cep p_pais

TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE

zgp002-logradouro, zgp002-numero, zgp002-complemento, zgp002-bairro, zgp002-cidade, zgp002-estado, zgp002-cep, zgp002-pais.

SELECTION-SCREEN END OF BLOCK b2. SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03. PARAMETERS: p_email p_email2 p_telef p_telef2

TYPE TYPE TYPE TYPE

zgp002-email, zgp002-email2, zgp002-telefone, zgp002-telefone2.

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-t04. PARAMETERS: p_taxa TYPE zgp002-vlr_taxa, p_status TYPE zgp012nome AS LISTBOX VISIBLE LENGTH 50 OBLIGATORY. SELECTION-SCREEN END OF BLOCK b4. INITIALIZATION. PERFORM z_preenche_status_listbox. START-OF-SELECTION. PERFORM z_insere_dados.

*&--------------------------------------------------------------------* *& Form z_preenche_sta z_preenche_status_listbox  tus_listbox  *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * --> p1 text * get_query_manager( ).

* Cria uma query para buscar todos os status de usuários (query sem fi ltros) o_query = o_query_man->create_query( ).

* Obtém o agente da classe de status de usuários o_ca_zgp012 = zca_gp_os_zgp012=>agent.

* Obtém todos os status de usuários t_status_usua = o_ca_zgp012->get_persistent_by_query( o_query ).

* Preenche uma tabela com todos os nomes dos status de usuários para a listbox  LOOP AT t_status_usua ASSIGNING . o_zgp012 ?= . . APPEND INITIAL LINE TO t_vrm_vl ASSIGNING .

-key = o_zgp012->get_nome( ).

* Se o status de usuário é o DEFAULT, inicializa a variável de tela IF NOT o_zgp012->get_flg_default( ) IS INITIAL. p_status = -key. ENDIF. ENDLOOP.

* Preenche a listbox com os status de usuários CALL FUNCTION 'VRM_SET_VALUES' EXPORTING id = c_vrm_id values = t_vrm_vl EXCEPTIONS id_illegal_name = 1 OTHERS = 2.

" z_preenche_status_listbox 

ENDFORM.

*&--------------------------------------------------------------------* *& Form z_insere_dados *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * --> p1 text * agen zca_gp_os_zgp002=>agent. t. o_zgp002 ?= o_agente->if_os_factory~create_persistent( ).

* * * * * * * * * * * * * * *

o_zgp002->set_ nome( p_nome ). o_zgp002->set_nome( o_zgp002->set_logradouro( o_zgp002->set_ logradouro( p_logra ). o_zgp002->set_numero( o_zgp002->set_ numero( p_numem ). o_zgp002->set_complemento( o_zgp002->set_ complemento( p_compl ). o_zgp002->set_bairro( o_zgp002->set_ bairro( p_bairro ). o_zgp002->set_cidade( o_zgp002->set_ cidade( p_cidade ). o_zgp002->set_estado( o_zgp002->set_ estado( p_estado ). o_zgp002->set_cep( o_zgp002-> set_cep( p_cep ). o_zgp002->set_pais( o_zgp002->set_ pais( p_pais ). o_zgp002->set_email( o_zgp002->set_ email( p_email ). o_zgp002->set_email2( o_zgp002->set_ email2( p_email2 ). o_zgp002->set_telefone( o_zgp002->set_ telefone( p_telef ). o_zgp002->set_telefon o_zgp002-> set_telefone2( e2( p_telef2 ). o_zgp002->set_dt_nasc o_zgp002-> set_dt_nasc( ( p_dtnasc ). o_zgp002->set_vlr_taxa( o_zgp002->set_ vlr_taxa( p_taxa ). wa_zgp002-nome = p_nome. wa_zgp002-logradouro = p_logra.

wa_zgp002-numero = p_numem. wa_zgp002-complemento = p_compl. wa_zgp002-bairro = p_bairro. wa_zgp002-cidade = p_cidade. wa_zgp002-estado = p_estado. wa_zgp002-cep wa_zgp002-cep = p_cep. wa_zgp002-pais = p_pais. wa_zgp002-email = p_email. wa_zgp002-email2 = p_email2. wa_zgp002-telefone = p_telef. wa_zgp002-telefone2 wa_zgp002-telefone2 = p_telef2. wa_zgp002-dt_nasc = p_dtnasc. wa_zgp002-vlr_taxa = p_taxa. o_zgp002->map_from_struct( wa_zgp002 ).

* Atribui o status para o usuário criado LOOP AT t_status_usua ASSIGNING . o_zgp012 ?= . . IF o_zgp012->get_nome( ) = p_status. o_zgp002->set_cod_sta o_zgp002->set_cod_status( tus( o_zgp012 ). EXIT. ENDIF. ENDLOOP. COMMIT WORK. MESSAGE s000.

PROGRAMA VALIDAÇÂO RAGE CONSTANTS: c_persg TYPE string VALUE 'IEQ1;IEQ3;IEQ4;IEQ5;IEQJ;IEQN;IE QW'. QW' . SPLIT c_persg AT ';' INTO TABLE r_persg1.  ______________________  ___________________________________ _______________________ ______________________ ______________________ ____________________ __________ EXEMPLO SUBMIT PARA VISUALIZAR TELA DE OUTRO O UTRO PROGRAMA:

SUBMIT z4g3011 WITH xnrsol EQ t_zhr039_aux-lancamento_z4ga AND RETURN. ______________________________________________________________________

EXEMPLO BATCH INPUT: 1 Fazer mapeamento pelo shdb. 2 PERFORM bdc_dynpro

PERFORM bdc_field PERFORM bdc_field

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

USING 'SAPLMGMM' '0060'. USING 'BDC_OKCODE' '/00'. USING 'RMMG1-MATNR' t_entrada-codigo.

USING 'SAPLMGMM' '0070'. USING 'BDC_OKCODE' '=ENTR'. USING 'MSICHTAUSW-KZSEL(01)'

'X'. PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

USING 'SAPLMGMM' '4004'. USING 'BDC_OKCODE' '=SP02'. USING 'MARA-BISMT' t_entrada-codigo_antigo.

Segundo exemplo de batch input Usando Macro. DATA: x_bdcdata LIKE STANDARD TABLE OF bdcdata WITH HEADER LINE, LINE, wa_ctu_params TYPE ctu_params. ctu_params . DEFINE bdcdynp. bdcdynp. clear x_bdcdata. x_bdcdata . x_bdcdatax_bdcdata-program = &1. &1. x_bdcdatax_bdcdata-dynpro = &2. &2. x_bdcdatax_bdcdata-dynbegin = 'X' 'X'. . append x_bdcdata. x_bdcdata. END-OF-DEFINITION . DEFINE bdcdata. bdcdata. clear x_bdcdata. x_bdcdata . x_bdcdatax_bdcdata-fnam = &1. &1. x_bdcdatax_bdcdata-fval = &2. &2. append x_bdcdata. x_bdcdata. END-OF-DEFINITION . REFRESH x_bdcdata. x_bdcdata . bdcdynp: bdcdynp: 'SAPMH5A0' '1000'. '1000'. bdcdata: bdcdata: 'PPHDR-PLVAR' lt_7404lt_7404-plvar, plvar, 'PPHDR-OTYPE' lt_7404lt_7404-otype, otype, 'PM0D1-SEARK' lt_7404lt_7404-objid, objid, 'PPHDR-INFTY' '7404', '7404' , 'PPHDR-ISTAT' lt_7404lt_7404-istat, istat, 'PPHDR-BEGDA' lt_7404lt_7404-begda, begda, 'PPHDR-ENDDA' lt_7404lt_7404-endda. endda. bdcdynp: bdcdynp: 'MP740400' '2000'. '2000'. bdcdata: bdcdata: 'P7404-BEGDA' lt_7404lt_7404-begda, begda, 'P7404-ENDDA' lt_7404lt_7404-endda, endda, 'P7404-EDUCATION_TYPE' lt_7404lt_7404-education_type, education_type , 'P7404-EDUCATION_FIELD' lt_7404lt_7404-education_field , 'P7404-INSTITUTE' lt_7404lt_7404 -institute, institute, 'P7404-COUNTRY' lt_7404lt_7404 -country country. .

* *

PPHDX-ENTRY_IDX' record-ENTRY_IDX_015. CLEAR: wa_ctu_params. CLEAR: wa_ctu_params. wa_ctu_paramswa_ctu_params-dismode = 'A' 'A'. . wa_ctu_paramswa_ctu_params-updmode = 'A'. 'A'.

* Cria um novo IT0008 na data do acordo coletivo CALL TRANSACTION 'PA30' USING x_bdcdata OPTIONS FROM wa_ctu_params. wa_ctu_params.

EXEMPLO PARA RETIRAR CAMPOS DE UMA PNP (banco de dados lógicos HR). AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. CASE screen-name. WHEN 'PNPTIMR1' OR 'PNPTIMR2' OR 'PNPTIMR3' OR 'PNPTIMR4' OR 'PNPTIMR5' OR '%FDPS110_1000' OR '%FBIS113_1000' OR 'PNPBEGPS' OR 'PNPENDPS' 'PNPENDPS'. . screen-input = '0' '0'. .

screen-invisible = 1. MODIFY SCREEN. ENDCASE. ENDLOOP.

EXEMPLO PARA DEIXAR CAMPO NÃO EDITAVEL, SÓ EXIBIÇÃO. LOOP AT SCREEN. IF screenscreen-name = 'P_NOM'. screenscreen -input = 0. MODIFY SCREEN. ENDIF. ENDLOOP. IF p_tranp IS INITIAL. CLEAR p_nom. ENDIF.

*Fim Desabilitar campos dependendo do radiobutton selecionado. ( o radiobutton precisa ter um user-command para programa report. P_xxx radiobutton xxx user-command teste. )( programa de exemplo ZPY0251) AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF screenscreen-name = 'P_ARQ_S'. IF p_crdbrf = 'X'. screenscreen -input = '0'. ELSE. screenscreen -input = '1'. ENDIF. MODIFY SCREEN. ENDIF. ENDLOOP. Focar somente no campo que seja obrigatório desabilitando momentaneamente os outros campos. ( programa de exemplo ZPY0251) AT SELECTION-SCREEN ON p_per. IF p_per IS INITIAL AND sysy-ucomm 'XLOCAL' . MESSAGE e999 WITH texttext-035. ENDIF. AT SELECTION-SCREEN ON p_arq_e. IF p_arq_e IS INITIAL AND sysy-ucomm 'XLOCAL'. MESSAGE e999 WITH texttext-036. ENDIF. ----------------------------------------------------------------------

EXEMPLO VISÃO NO REPORT(QUANDO COLOCAR UM CODIGO NO CAMPO ASSIM QUE PRECIOSADO ENTER TRAZ O NOME E APRESENTA NA TELA.): AT SELECTION-SCREEN ON VALUE-REQUEST

FOR “CAMPO”.

HABILITAR E DESABILITAR CAMPOS NA TELA DE SELEÇÃO DEPENDENDO DE QUAL CHECKBOX FOR MARCADO (REPORT). Programa: Z582071D  AT SELECTION SELECTION SCREEN  IF cb_mono = ' '. '. LOOP AT SCREEN. CASE screen-name. WHEN 'P_GUIA' OR 'P_TRANP' 'P_TRANP'. . screen-input = '0' '0'. . screen-active = 1. MODIFY SCREEN.

ENDCASE. ENDLOOP. ELSE. LOOP AT SCREEN. CASE screen-name. WHEN 'P_WERKS' 'P_WERKS'. . screen-input = '0' '0'. . MODIFY SCREEN. WHEN 'P_DATA' 'P_DATA'. . screen-input = '0' '0'. . MODIFY SCREEN. WHEN 'P_TKNUM' 'P_TKNUM'. . screen-input = '0' '0'. . MODIFY SCREEN. WHEN 'P_MBLNR' 'P_MBLNR'. . screen-input = '0' '0'. . MODIFY SCREEN. WHEN 'P_IMPR' 'P_IMPR'. . screen-input = '0' '0'. . MODIFY SCREEN. ENDCASE. ENDLOOP. ENDIF. ---------------------------------------------------------------------FUNÇÃO PARA INCLUIR OU EXCLUIR REGISTROS DA TEVEN. CALL FUNCTION 'HR_TMW_DB_UPDATE_TEVENT' TABLES del_teven = t_teven_u ins_teven = t_teven_i del_teven_more = t_teven_m ins_teven_more = t_teven_m EXCEPTIONS insert_failed = 1 update_failed = 2 OTHERS = 3. FUNÇÃO GERAR MARCH CODE PARA BUSCA DO Diretório de arquivo (LOCAL OU SERVIDOR): F4_DXFILENAME_TOPRECURSION

obs: O CAMPO ONDE IRÁ RECEBER O DIRETÓRIO DEVE SER DECLARADO DA  SEGUINTE FORMA p_filename LIKE dxfieldsdxfields -longpath DATA: v_onde TYPE c. IF p_server IS INITIAL. v_onde = 'P'. " arquivo local ELSE. v_onde = 'A'. " arquivo no servidor ENDIF. * Parâmetros da função F4_DXFILENAME_TOPRECURSION: * i_location_flag i_location_flag * space --> exibe popup perguntando se o arquivo é local ou no servidor

* 'P' --> arquivo local * 'A' --> arquivo no servidor * i_server (só é relevante se o arquivo for no servidor) * space --> usa o servidor default * '?' --> exibe popup perguntando o nome do servidor a ser utilizado * fileoperation (só é relevante se i_location_flag = space) * 'R' --> exibe popup perguntando "Onde ler o arquivo?" * 'W' --> exibe popup perguntando 'Onde gravar o arquivo?" * o_path --> retorna o caminho a ser usado: * 1) pela GUI_DOWNLOAD se for arquivo local ou * 2) pelo OPEN DATASET se for arquivo no servidor

CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION' EXPORTING i_location_flag = v_onde i_server = space fileoperation = 'W' IMPORTING o_path = p_arq EXCEPTIONS rfc_error = 1 error_with_gui error_with_gui = 2 OTHERS = 3. 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.

USANDO PROGRAMAÇÃO DINAMICA / Programa ZPY0253 FIELD-SYMBOLS: TYPE e_detalhe_cred -pernr, TYPE e_detalhe_cred -nrrub, LIKE LINE OF t_detalhe_cred, TYPE e_detalhe_cred -cdret. LOOP AT t_detalhe_cred ASSIGNING . CLEAR: vl_mes, vl_ano, vl_contrato, vl_pernr, vl_rubrica, vl_cdret.

vl_pernr = 'PERNR'. vl_rubrica = 'NRRUB'. vl_cdret = 'CDRET'.

* Mês e Ano. vl_mes = -anomes+4( anomes+4 (2). vl_ano = -anomes+0( anomes+0 (4).

* Numero do contrato CONCATENATE -numemp -seqemp INTO vl_contrato.

* Verificando Titular ou Avalista - Inválido ou desligado. DO 6 TIMES. vl_index = sysy-index. ASSIGN COMPONENT vl_pernr OF STRUCTURE TO . IF sysy-subrc = 0 AND IS NOT INITIAL. CLEAR wa_saida. wa_saidawa_saida -cdbanco wa_saidawa_saida -cdpernr wa_saidawa_saida -cdcontrato wa_saidawa_saida -dtano wa_saidawa_saida -dtmes

= = = = =

'CREDIBRF'. . vl_contrato. vl_ano. vl_mes.

ASSIGN COMPONENT vl_rubrica OF STRUCTURE TO . IF sysy-subrc = 0. wa_saidawa_saida -cdlgart ENDIF.

= .

wa_saidawa_saida -vlnumparc = -parcob. wa_saidawa_saida -qtparcela = -numpar. vl_campo = -vlrfun. WRITE vl_campo TO vlrfun CURRENCY 'BRL' DECIMALS 2. CONDENSE -vlrfun NO NO-GAPS. REPLACE ALL OCCURRENCES OF '.' IN vlrfun WITH ''. REPLACE ALL OCCURRENCES OF ',' IN vlrfun WITH '.'. wa_saidawa_saida -vlparcela = -vlrfun. wa_saidawa_saida -vlsaldodvd = '0'. READ TABLE lt_0003 INTO wa_0003 WITH KEY pernr = . IF sysy-subrc = 0 AND vl_pernr = 'PERNR'. wa_saidawa_saida -desitemp = 'Funcionário não encontrado'. wa_saidawa_saida -cdmotivst = '04'. MODIFY zhr137 FROM wa_saida. ELSEIF sysy-subrc = 0 AND vl_pernr 'PERNR'. wa_saidawa_saida -desitemp wa_saidawa_saida -cdmotivst

= 'Avalista não encontrado'. = '04'.

MODIFY zhr137 FROM wa_saida. ELSE. READ TABLE lt_0000 INTO wa_0000 WITH KEY pernr = _cred>-pernr. IF sysy-subrc = 0 AND vl_pernr = 'PERNR'. wa_saidawa_saida -desitemp = 'Funcionário demitido'. wa_saidawa_saida -cdmotivst = '05'. MODIFY zhr137 FROM wa_saida. ELSEIF sysy-subrc = 0 AND vl_pernr 'PERNR'. wa_saidawa_saida -desitemp = 'Avalista demitido'. wa_saidawa_saida -cdmotivst = '05'. MODIFY zhr137 FROM wa_saida. ELSE. ASSIGN COMPONENT vl_cdret OF STRUCTURE T O . IF sysy-subrc = 0. = '01'. ENDIF. ENDIF. ENDIF. ENDIF. vl_pernr+5( vl_pernr+5 (1) = vl_index. vl_rubrica+5( vl_rubrica+5 (1) = vl_index. vl_cdret+5( vl_cdret+5 (1) = vl_index. ENDDO.

LER ARQUIVO EXCEL:

* Funçoes para gerar arquivo excel

CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT' 'SAP_CONVERT_TO_XLS_FORMAT' EXPORTING i_filename = p_dwload TABLES i_tab_sap_data = tab_excel EXCEPTIONS conversion_failed conversion_failed = 1 OTHERS = 2. IF sy-subrc 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 S Y-MSGV3 SY-MSGV4. ENDIF.

CALL FUNCTION 'MS_EXCEL_OLE_STANDARD_DAT' 'MS_EXCEL_OLE_STANDARD_DAT' EXPORTING file_name = p_dwload data_sheet_name = sheet_name TABLES data_tab = tab_excel EXCEPTIONS file_not_exist = 1 filename_expected filename_expected = 2 communication_error communication_error = 3 ole_object_method_error ole_object_method_error = 4 ole_object_property_error ole_object_property_error = 5 invalid_filename invalid_filename = 6 invalid_pivot_fields invalid_pivot_fields = 7 download_problem download_problem = 8 OTHERS = 9.

*Função para ler planilha excel * Carregar a planilha do excel Func com Escalas Turmas CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' 'TEXT_CONVERT_XLS_TO_SAP' EXPORTING i_line_header = 'X' i_tab_raw_data = it_raw i_filename = p_uploa1 TABLES i_tab_converted_data i_tab_converted_data = t_func_esc EXCEPTIONS conversion_failed conversion_failed = 1 OTHERS = 2. * Lê 2 arquivo CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE' 'ZALSM_EXCEL_TO_INTERNAL_TABLE' EXPORTING filename = p_uploa2 i_begin_col = 1 i_begin_row = 1 i_end_col = 14 i_end_row = 999999 TABLES intern = t_excel EXCEPTIONS inconsistent_parameters inconsistent_parameters = 1 upload_ole = 2 OTHERS = 3.

Quando o campo for numérico o excel ignora os zeros a esquerda e direita tem q concatenar uma aspas simples para o excel considerar como caracter o campo CONCATENATE '''' wa_arquivo-inter wa_arquivo-inter INTO wa_ine_excel-f2. wa_ine_excel-f2.









Para todo tipo de datos: EQ ó =, NE ó ó >
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF