Translate this blog

terça-feira, 14 de outubro de 2014

Criar variantes para VA05 / Create variants for VA05


 Português  Por causa de uma solicitação de um cliente, encontrei uma dica que achei bacana e que pode ajudar funcionais e a desenvolvedores também. A ideia inicial era gerar um relatório vinculado a transação VA03 mostrando o valor líquido real, considerendo caso algum item tenha sido recusado. Como já existe a opção de Ordens no programa, precisaríamos criar uma variante pare este report, que é simplesmente a transação VA05.
Mas como fazer isso se a transação não te possibilita? Foi ai que pesquisei e encontrei uma solução. Na barra superior entre na opção Sistema > Especificações do usuário > Dados próprios e depois clique na aba Parâmetros. Adicione o ID SD_VARIANT_MAINTAIN com o valor U e salve.
Pronto! Agora é possível criar variantes para a VA05 poupando tempo e esforço!
Ref.: http://sap.ittoolbox.com/groups/technical-functional/sap-log-sd/how-to-createchange-visualization-variant-in-va05-857151

segunda-feira, 30 de dezembro de 2013

Tabela transparente com campo maior que 16 posições / Transparent table with field greater than 16 bytes length


 Português  Estava implementando notas em um cliente e tive um problema com relação a um campo em uma tabela transparente. No caso seu nome nos passos manuais tinha 17 posições e eu só conseguia colocar 16. O cliente está com o EHP5 e existe essa limitação quando você cria uma tabela nas versões mais antigas do SAP.
Procurei uma solução e achei a seguinte nota:
1680583 Field names for tables and views with more than 16 char.
Ref.: http://scn.sap.com/community/abap/blog/2013/11/02/data-dictionary-supports-field-s-name-up-to-30-bytes-length

quinta-feira, 31 de outubro de 2013

Forçar chamada do PAI (Process After Input)/ Force PAI call


 Português  Para forçar um programa do tipo Pool de Módulos, como exemplo, a acessar do PBO (process before output) o processo PAI (process after input) programaticamente, sem ter atuação do usuário, pode-se usar esta função:
01
02
03
04
05
06
07
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
   EXPORTING
    functioncode           = '='
   EXCEPTIONS
    function_not_supported = 1
     OTHERS                 = 2.

segunda-feira, 9 de setembro de 2013

Pegar valores dos domínios / Get domain values


 Português  Preencher um campo de um relatório com dados de uma tabela transparênte pode ser fácil, levando em consideração que você saiba fazer um SELECT. O que complicava, no meu caso, era quando existia a necessidade de pegar os valores de um domínio. A solução que achava na epoca era colocar os valores fixos, hardcode mesmo!

Mas sempre há uma maneira de tornar a solução mais inteligente! No caso, podemos usar tanto alguns SELECTs quanto uma função Standard. As tabelas que contém informação dos domínios são DD07L (valores fixos) e DD07T (textos descritivos) e a função é a GET_DOMAIN_VALUES:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
   DATA: t_dd07v TYPE TABLE OF dd07v,
        s_dd07v TYPE dd07v.
 
   CALL FUNCTION 'GET_DOMAIN_VALUES'
     EXPORTING
      domname         = 'J_1BMATORG'
*      TEXT            = 'X'
*      FILL_DD07L_TAB  = ' '
     TABLES
      values_tab      = t_dd07v
*      VALUES_DD07L    =
     EXCEPTIONS
      no_values_found = 1
       OTHERS          = 2.
 
   LOOP AT t_dd07v INTO s_dd07v.
     WRITE: s_dd07v-ddlanguage.  "Código do idioma
     WRITE: s_dd07v-valpos.      "Valores fixos
     WRITE: s_dd07v-ddtext, /.      "Texto com a descrição
   ENDLOOP.

quinta-feira, 15 de agosto de 2013

Backup dos clientes do SAP Logon / Backup from SAP Logon's clients


 Português  Após alguns anos ou mesmo meses trabalhando como consultor, é normal acumular um bom número de clientes acessados, com seus servidores de aplicações, SAProuters, etc. O problema é quando trocamos de computador ou mesmo quando temos que formatá-lo... Como recuperar os clientes adicionados? Copiar um a um da muito trabalho...

Mas, como quase todo programa normal, existe uma forma de fazer backup!
Quando instalamos o SAP Gui, um ficheiro é adicionado nos "Meus Documentos" do usuário logado no sistema operacional. O ficheiro localiza-se na pasta oculta AppData do usuário, seguindo esta sequencia de subpastas: Roaming > SAP > Common. Os três arquivos correspondem as configurações salvas dos clientes do SAP Logon!


Contribuição de Angélica Wolfart.

segunda-feira, 29 de julho de 2013

Conversão de datas / Date conversions


 Português  Para conversão de variáveis de data, pode-se usar estas funções Standards para agilizar o processo:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
DATA: lc_date TYPE audat VALUE '20130729',
      lc_data TYPE c LENGTH 10.
 
"US > BR
CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT'
   EXPORTING
    input  = lc_date
   IMPORTING
    output = lc_data.
"lc_data => '29.07.2013'
 
"BR > US
lc_data = '20.07.2013'.
CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'
   EXPORTING
    input  = lc_data
   IMPORTING
    output = lc_date.
"lc_date => '20130720'

terça-feira, 11 de junho de 2013

Conversão Decimal para ASCII / Convertion From Decimal to ASCII


 Português  ASCII (acrônimo para American Standard Code for Information Interchange, que em português significa "Código Padrão Americano para o Intercâmbio de Informação", mas comumente utilizamos a sigla em inglês para referencia direta) é uma codificação de caracteres de sete bits baseada no alfabeto inglês. Cada sequencia de códigos na tabela ASCII corresponde a um caractere, comumente representados pelos 8 bits (equivalente a um byte), sendo que o oitavo bit (da direita para a esquerda) serve como um bit de paridade, utilizado para detecção de erro. Os códigos ASCII representam texto em computadores, equipamentos de comunicação, entre outros dispositivos que trabalham com texto. (Por Wikipédia).
Para facilitar a identificação de cada caracter, disponibilizei a tabela de conversão Decimal para ASCII extraída por código ABAP, excedendo os 128 caracteres previstos. Também disponibilizei a tabela com as siglas e descrições de alguns destes caracteres.
Segue o codigo do FORM que utilizo para converter de decimal para ASCII:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
*&----------------------------------------------------------*
*&      Form  zf_ascii_to_char
*&----------------------------------------------------------*
*       text
*----------------------------------------------------------*
*       -->P_NUM     text
*       -->P_CHAR    text
*----------------------------------------------------------*
  FORM zf_ascii_to_char  USING    p_num  TYPE i
                        CHANGING p_char TYPE c.
    DATA: n    TYPE i,
         x(4) TYPE x.
    FIELD-SYMBOLS: <fc>  TYPE c.
   x = p_num.
    ASSIGN x TO <fc> CASTING TYPE c.
   n = STRLEN(<fc>) - 1.
    WRITE <fc>+n(1) TO p_char.
  ENDFORM.                   " zf_ascii_to_char