sexta-feira, 27 de setembro de 2013

RZ11 - TIME OUT

Aumentando o tempo de processamento parâmetro “rdisp/max_wprun_time” na RZ11 para PTY da Sankyu.

 

Transação J1bpis para o programa J_1BPIS_MAIN - Veja as telas deste parâmetro no PRD

P Antes de imprimir pense em seu compromisso com o Meio ambiente.

 

terça-feira, 24 de setembro de 2013

A Conta 6xxxxx requer UMA classif.contábil Relevante parágrafo um contab.custos

ESTAMOS com o seguinte Erro, Trata-se de hum Processo de Amostra Grátis, mas when Vamos Fazer o LANÇAMENTO na VF02 o Sistema Localidade: Não ESTA permitindo, e recebemos a seguinte MENSAGEM:

A Conta 6xxxxx requer UMA classif.contábil Relevante parágrafo um contab.custos

MENSAGEM N º KI235

Diagnóstico

Localidade: Não FOI Entrada nenhuma Classificação Contábil de controlar parágrafo UMA Conta Relevante par de Contabilidade de Custos.

ATIVIDADES fazer Sistema

A Conta 6xxxxx ESTA Definida Como classe de custo.

Por ISSO, E Preciso de sempre INDICAR UMA Classificação Contábil de controle.

 

 

Entao na KA02 Você. Podera Entrar com ESTA cta / classe de Custo e INSERIR UM Objeto de Classificação Contábil UO então verifique com Seu Pessoal de CO se Ellis PODEM Fazer UMA Derivação Automática na OKB9.

segunda-feira, 23 de setembro de 2013

SPED PIS COFINS

Para quem tem interesse sobre o assunto, segue umas notinhas SAP para o Sped.....


Lógico a aplicação das notas não depende somente desta lista, mas cada ambiente exige uma analise do que deve ser aplicado para o relatório (extrator) do SPED funcione corretamente, além é claro dos acertos em BADI, includes Z, etc....etc.

 

 

 

quinta-feira, 12 de setembro de 2013

GGB1 GGB0 PROGRAMA RGUGBR00

Regras de validação

 

Tentar utilizar, se possível, ao invés de Field/User Exit para Validação/Substituição, as Regras de Validação (transação GGB0/OB28) ou as Regras de Substituição (transação GGB1/OBBH) — a transação GGB4 remete a ambas regras.

 

http://www.youtube.com/watch?v=ge2Zl5d7ak0

 

 

 

Após associar a etapa a nova regra e super importante

RGUGBR00

 

Para modificação de DIV a regra devera ser colocada no Cabeçalho do documento

 

Conforme

 

*---------------------------------------------------------------------*

*       FORM ZXXX - VALIDAÇÃO DE DIVISÃO                              *

*---------------------------------------------------------------------*

* Modificar o campo divisão na conta de diferença de preço quando

* ocorrer o movimento de transferência de material

*---------------------------------------------------------------------*

FORM z013 CHANGING bool_data TYPE gb002_015.

 

  FIELD-SYMBOLS: <fs_bwart>, "Tipo de movimento

                 <fs_matnr>, "Material

                 <fs_umwrk>. "Centro receptor

 

  DATA: vc_bwart LIKE mseg-bwart,

        vc_matnr LIKE mara-matnr,

        vc_spart LIKE mara-spart,

        vc_gsber LIKE v134g-gsber,

        vc_umwrk LIKE mseg-umwrk.

 

* Recuperando o TIPO DE MOVIMENTO

  ASSIGN ('(SAPMM07M)RM07M-BWARTWA') TO <fs_bwart>.

  IF <fs_bwart> IS ASSIGNED.

    vc_bwart = <fs_bwart>.

  ENDIF.

 

* Recuperando o CENTRO RECEPTOR

  ASSIGN ('(SAPMM07M)MSEGK-UMWRK') TO <fs_umwrk>.

  IF <fs_umwrk> IS ASSIGNED.

    vc_umwrk = <fs_umwrk>.

  ENDIF.

 

* Para todos os registros contidos na tab. recebida na chamada do FORM, faremos...

  LOOP AT bool_data-bseg INTO bseg.

 

*   Se BSEG-HKONT = '0004118001' e SY-TCODE = 'MB1B' e Tipo movimento (MSEG-BWART - tela da MB1B) = 'ZXX' ou 'ZX1' ou 'ZX2' ou 'ZX3'

    IF ( bseg-hkont = '0004118001' AND

         sy-tcode   = 'MB1B'      AND

        ( vc_bwart = 'ZXX' OR

          vc_bwart = 'ZX1' OR

          vc_bwart = 'ZX2' OR

          vc_bwart = 'ZX3' ) ).

 

      SELECT SINGLE gsber

      INTO vc_gsber

      FROM v134g

      WHERE werks = vc_umwrk

        AND spart eq '10'. "vc_spart.

 

      bseg-gsber = vc_gsber .

 

      MODIFY bool_data-bseg FROM bseg.

 

    ENDIF.

 

  ENDLOOP.

 

Brincando com SET, não é filmagem é SAP

Usando SET GS01 GS02 GS03

 

http://help.sap.com/saphelp_46c/helpdata/pt/5b/d2297e43c611d182b30000e829fbfe/frameset.htm

 

Tela GS01 – Criar set

 

Como descobrir onde um SET É USADO

 

EWK1

 

 

Resultado

 

No código

 CALL FUNCTION 'G_SET_TREE_IMPORT'
    
EXPORTING
      
client          client
      setid           
loc_setid
      tabname         
table
      fieldname       
fieldname
      no_descriptions 
no_descriptions
      no_rw_info      
no_rw_info
      date_from       
date_from
      date_to         
date_to
    
TABLES
      set_hierarchy   
loc_sethier
      set_values      
loc_setvalues
    
EXCEPTIONS
      set_not_found   
1
      
OTHERS          3.

  
IF sy-subrc <> 0.
    
PERFORM send_message_gs004 USING loc_setid '3'.
  
ENDIF.

 

Módulo de função:

 

 

Programa na Miro: SAPLMR1M

Para o include na miro: ZRGGBS000

form u102 using zlspr.

  
datavc_setname type sethier-shortname,
        vc_setid   
type sethier-setid,
        v_zlspr    
type bseg-zlspr.

  
datarg_user type zibkk_r_hkont occurs 0.

* Efetua query

  
select single zlspr from bseg into v_zlspr.

  
if bseg-zlspr is initial and sy-subrc ne 0.
    bseg
-zlspr 'M'.

  
elseif bseg-zlspr <> v_zlspr and sy-subrc 0.

    
if v_zlspr 'M' and bseg-wrbtr le '50.000,00'.

      vc_setname 
'Nome_do_set_1'.

      
perform busca_setid using vc_setname changing vc_setid.

      
perform busca_intervalo tables rg_user using vc_setid.

      
if sy-uname in rg_user.
        bseg
-zlspr ' '.
      
else.
        
message e001(zfiwith text-001.
      
endif.

    
elseif v_zlspr 'M' and bseg-wrbtr between '50.000,00' and '150.000,00'.

      vc_setname 
'Nome_do_set_2'.

      
perform busca_setid using vc_setname changing vc_setid.
      
perform busca_intervalo tables rg_user using vc_setid.

      
if sy-uname in rg_user.
        bseg
-zlspr ' '.
      
else.
        
message e001(zfiwith text-001"usuário não tem permissão para
      
endif.

    
elseif v_zlspr 'M' and bseg-wrbtr gt '150.000,01'.

      vc_setname 
'Nome_do_set_3'.

      
perform busca_setid using vc_setname changing vc_setid.
      
perform busca_intervalo tables rg_user using vc_setid.

      
if sy-uname in rg_user.
        bseg
-zlspr ' '.
      
else.
        
message e001(zfiwith text-001"usuário não tem permissão para
      
endif.

    
endif.

 

How to use GS01, GS02, GS03

 

 

P Antes de imprimir pense em seu compromisso com o Meio ambiente.

 

Trace SQL

Trace de autorização, ST05, trace de SQL. Como sabem o SAP é um sistema que suporta diversos bancos de dados e devido à diversidade de linguagens e de bancos de dados existentes, a maneira de se comunicar entre uns e outros seria realmente complicado de providenciar, a não ser pela existência de padrões que nos permitem a realização das operações básicas de uma forma universal. É justamente disso que se trata o Structured Query Language ( SQL ) que não é mais do que uma linguagem padrão de comunicação com base de dados. Falamos portanto, de uma linguagem normalizada que nos permite trabalhar com qualquer tipo de linguagem em combinação com qualquer tipo de base de dados. No caso do SAP estamos falando do ABAP e do SQL juntos. Basicamente o comando SELECT é utilizado para ler Tabelas, O UPDATE para atualizar e o DELETE para excluir ( Deletar ) registros de uma tabela e o INSERT faz as inserções ( inclui ). Temos muitos outros comandos SQL e diversos tutoriais na Internet para quem quiser se aprofundar no assunto.

O nosso trace faz mapeamento de comandos SQL, muito útil para se saber que tabelas são tratadas em uma aplicação. No caso de um desenvolvimento "Z", mesmo se for chamado por uma aplicação Standard um trace faz este mapeamento SQL.

Passo a Passo:

1.    Executar a transação ST05,

2.    Marcar "SQL Trace"

3.    Ativar o trace, clicando em "Activate Trace"

e aguardar a mensagem "SQL trace is For User XXXXXXXXXXX Activated"

4.    Executar a transação a ser mapeada, com /N + Transação

5.    No meu caso executei a VA01 ( ordem de vendas e gravei um documento de vendas ).

6.    Executar novamente a transação ST05,

7.    Desativar o trace, clicando em "Deactive Trace"

8.    Executar a analise do trace, clicando em "Display Trace"

9.    Ao executar a analise, deixe marcado apenas "SQL Trace" e "Trace List",

assunto que o trace foi executado.



Devemos ficar atentos ao retorno do Objeto de SQL, Sendo RC=0 Ok e RC diferente de zero,
 um problema de execução. RC ( Return code , código de retorno da função ).
Para mais detalhes, dar um clik duplo no comando SQL


Neste momento também é possível verificar o código ABAP e o dicionário de dados.

OBS: Dica Importante

Se você estiver procurando problemas relacionado a performance, a linha onde o campo "Duration"estiver em vermelho, temos um serio problema de performance de acesso ao banco de dados. Ou seja, o Trace também pode ser utilizado para identificar problemas de performance.

Fonte: Ricardo Borges

 

P Antes de imprimir pense em seu compromisso com o Meio ambiente.

 

ASSIGN do ABAP

Algumas vezes, precisamos de uma informação onde ela já não esta mais disponível.

Neste caso o ASSIGN do ABAP pode ser aplicado com ótimo resultado.

Para que o ASSIGN funcione, você só precisa saber o programa e o campo-tabela

a ser utilizado, desde que este parâmetro esteja em memória ou seja carregado.

Este recurso ABAP é muito útil nos desenvolvimentos que envolvem exits e/ou BADIs, porque evita e re-leitura desnecessária de tabelas para obter dados.

Este recurso simples pode ser testado na sua exit e/ou badi sem grandes problemas.

Vejamos o exemplo abaixo:

Colocamos um break-point em uma exit de SD, da gravação da ordem de vendas.

Após o break, vamos consultar uma informação em uma tela de SD, para saber o programa de tela e o campo-tabela para simularmos o ASSIGN no momento do Debug.

Observe que estamos verificando a seguinte informação:

Após o F1 no campo incoterm, obtemos os seguintes dados:

Área de tela VBKD-INCO1

Nome do programa SAPMV45A

 

Após execução da VA01, o SAP vai parar o break-point definido.

Neste caso, foi colocado o código do programa entre chaves...

(SAPMV45A)

E em seguida a tabela e o campo que deve ser feito o ASSIGN.

VBKD-INCO1

No exemplo acima, o conteúdo do campo é “CIF”...que pode ser assimilado por uma

Variável e utilizado em um desenvolvimento.

Muito útil, poderia ser qualquer campo de qualquer tela de uma transação...

Complementando:

O exemplo acima é de um campo de tela, o exemplo abaixo é de uma informação que é processada sem as telas.

Para fazer o ASSIGN, você precisa debugar o programa e pegar seu nome de processamento no SAP, exemplo:

Função j_1b_process_tkomv

Todo programa em memória começa como SAPL, exemplo: SAPLJ1BCONDTAX abaixo

Preciso capturar o conteúdo do campo m_caller que está dentro da função

 

J1BCONDTAX(m_caller)

DATA lt_gt_taxdata TYPE j_1btxdata.

FIELD-SYMBOLS: . “Caso for tabela colocar o tipo exemplo:

FIELD-SYMBOLS: type table.

UNASSIGN: .

ASSIGN (' SAPLJ1BCONDTAX(m_caller)') TO .

IF IS ASSIGNED.* Tabela recebe ponteiro
lt_gt_taxdata =
 .ENDIF.

 

Fonte: Ricardo Borges

P Antes de imprimir pense em seu compromisso com o Meio ambiente.