Archive Page 2

03
Set
09

alterar descrições de campos no SAP

— Removido a pedido do autor de onde retirei a informação —

— Removed by author request —

se for necessário alterar descrições de campos no SAP seguir as instruções:

http://www.renet-web.net/2005/09/01/changing-standard-sap-field-descriptions/

03
Set
09

Gajos vs. Gajas

Há muito tempo que não escrevo por aqui uma daquelas entradas… Sabem a que me refiro?!

Se não o sabem, vão* descobrir em breve:

Tudo começou há um oi dois meses quando fomos (eu e a minha “gaja”) convidados para um casório de dois grandes amigos.

Como tal, toca de organizar uma despedida para cada um deles. Curiosamente eu fiquei a braços com a tarefa de organizar o dito evento – que não devo organizar outro tão depressa – e a minha cara metade foi eleita para organizar a parte das meninas.

Ambos fomos eleitos para o cargo sem nunca sequer nos termos candidatado… ainda estou para perceber como tudo aconteceu… Adiante, todo o meu trabalho correu bem (quase sem ajuda dos outros), compareceram os que interessavam, não levantaram ondas, nada.

Se eu tivesse proposto que iria-mos todos mandarmo-nos para dentro de um poço e ainda por cima tinhamos que pagar, eles iam! Já com as gajas… UI! que confusões. Até se dão ao trabalho de reclamar com o aumento do preço porque o número de participantes foi diminuindo… e reclamam com… MAILS! “Ah e tal, no primeiro mai o preço era x e agora passa a ser x + y e isso não era o acordado”… Até parece que estão a discutir o preço de um projecto de Milhões…

Moral da história: Os gajos estão-se a cagar para tudo, as gajas cagam-se para as coisas que dão trabalho (desde que não seja o trabalho delas), mas quando toca a alguma coisa que as “prejudique” UI! são umas fuças!

* Acabei de reparar que tenho o hábito de escrever para leitores, como se de uma conversa se tratasse… assumo sempre que alguém vai ler os meus textos.Convencido, eu? Nahhhhh…

03
Set
09

Alterar o conteúdo de tabelas no SAP

Quem já trabalha com o SAP há algum tempo, de certeza que consegue alterar os conteúdos de uma tabela do SAP (entrando em debug e alterado o código da função para EDIT)….

Mas o que eu vos mostro, é mais poderoso e consequentemente, mais perigoso.

Este método, permite alterar o conteúdo das tabelas directamente na listagem principal. Para isso basta efectuar os seguintes passos:

Transacção: SE16N
– Escrever o nome da tabela
– No local onde se executam os comandos/transacções, escrever: &SAP_EDIT
– ENTER
– F8 ou executar

Reparem que o conteúdo de está todo editável…

31
Ago
09

despedida de solteiro

Desta vez, foi a de um grande amigo, o RT(espero que tenhas gostado!)!

Foi um dia radical, passado em Negrais no Campo-Aberto, onde já tinha ido (numa outra despedida de solteiro).

Pois bem, tratou-se de uma actividade de dia inteiro, com a seguinte distribuição:

9:00-12:00 – Multiactividades (Escalada, Rappel, Slide, Tiro com Arco, Tiro com Besta)

12:30-14:00 – Almoço (Grelhada mista com comidinha e bebida à descrição)

14:00-18:00 – Paintball

Ora, para começar, atrasámo-nos… começamos 30min mais tarde que o previsto… mas (infelizmente) não se fez sentir para o resto do dia: nós vinha-mos com a tesão do mijo, e andámos a correr, e despachávamos tudo a uma velocidade furiosa… e isto tudo acompanhado de muita cerveja (esgotámos o stock de minis frescas)…

Ao almoço, estragámo-nos (só um bocadinho) com cerveja, mas não fez mal nenhum, pois o paintball saiu-nos do pelo…

Altura pior do dia: as contas!!! Foi espetacular, todos pagaram, não faltou dinheiro nenhum, sem confusões, 5*!!!! (Obrigado malta, por terem colaborado da melhor maneira!)

Como a malta ainda não estava cansada o suficiente, fomos jantar para o Bairro Alto (era mais na Bica) e depois beber uns copos… posso dizer que ficamos a conhecer as melhores esquinas do bairro, visto ter sido onde tivemos mais tempo! (vejam lá que numa dessas esquinas conseguimos – para mal dos nossos pecados – encontrar o “monstro do lago verde“).

Demos 20 voltas ao bairro (Bica – Princepe Real) para ver se conseguíamos levar o RT (noivo) a um bar de travestis, mas a coisa estava programada bem demais e não demorou muito para o noivo se apreceber para onde o tentámos levar…

Acabámos a comer um pão com chouriço na costa da caparica… eram 03:30… e que bem que soube!

27
Ago
09

traduções de layouts

Uma parte (muito) chata do meu trabalho – que desta vez foi feito por uma colega OBRIGADO! – são as traduções dos layouts.

Além de chatas, nunca pede uma ordem de transporte… o que levanta a pergunta: “como se passam as traduções para o sistema de Produção?”

Pois bem, descobri a solução:

Basta executar o report RS_LXE_RECORD_TORDER

Não sei bem porque este report não está integrado na Transacção SE63 (traduções) ou porque não tem uma transacção associada.

no entanto, a SAP disponibiliza informação acerca deste report em

http://help.sap.com/saphelp_sm32/helpdata/en/d4/73c33e3a443907e10000000a114084/content.htm

26
Ago
09

IDOCs

Area Menus  :

ALE Folder under Tools in SAP Menu :

Transaction WEDI Transaction SALE

Transaction Code Table Name If you want to……………………………………………..
WE30,WE60 View an Idoc type’s structure and/or documentation
WE82 EDIMSG Find Idoc types relation with Message types and / or extensions Establish if there is a relevant Idoc Extension
WE81 EDIMSGT View an message types structure description
BD60 Find the outbound function module for SMD process

* Remember that Idocs can also be triggered through transactions and via scheduled programs. * Could also search in transaction SE37 for *MASTERIDOC*<Message Type>*

Transaction Code Table Name If you want to……………………………………………………………….
SALE TBDA2 Check if change pointers are set on globally for the client Check if change pointers are set on for the message.
SCDO BDCP,BDCPV Establish what change document drives the change pointer process
WE20 EDP21 Find Inbound Process Code
WE42 TBDBA Find link between inbound process code and update function. Find which update function is called BAPI process code
WE57 Find link between message type/Idoc type and update function
SMOD,CMOD Find if user-exits have been implemented in standard inbound/outbound process

* Also search code for string ‘userexit’ and ‘call customer-function

Transaction Code If you want to……………………………….
BD51 Establish whether call transaction / Direct input has been used

* This transaction should only be used as a guide, the best method of determining whether call transaction has been used is to scan the update function for the command ‘call transaction’.

Transaction Code Table Name If you want to………………………………………………………….
BD64 TB05/06 View Distribution Model
SM58 View failed tRFC’s

* Double click on the user name to view the data content of the message and establish ehat message type it is…

Transaction Code If you want to………………………………………………………….
WE19 Idoc Test Tool

Other SAP related areas, Useful transaction:

SM37 ——————————————————-Job scheduling SCDO—————————————————— change documents sets out which table  fields are logged for changes. The change history is stored in  table CDHDR and CDPOS. SM35, SHDB———————————————–Batch Input Recording and session management, fundamental to understand ‘call transaction’. SE80——————————————————–ABAP Workbench. SE30——————————————————–Runtime Analysis. SE11, SE16————————————————Data Dictionary and Table contents viewer.

referencia: SDN – http://wiki.sdn.sap.com/wiki/display/ABAP/Useful+Transactions+in+ALE

07
Ago
09

informações de cabeçalho em lista ALV

Nos mapas em que se representam os dados com ALVs (quer em Listas quer em Grids), é bom colocar o nome do mapa e os vários critérios de selecção no topo da lista, especialmente quando são impressos.

Para uniformizar e centralizar este processo, inventei (possivelmente a roda, mas como não conheço nada do SAP para utilizar) uma rotina que lê os parametros de selecção e cria uma tabela preparadinha para se passar no evento de TOP_OF_PAGE, através da função REUSE_ALV_COMMENTARY_WRITE:

*&———————————————————————*
*&      Form  F_PREP_SELECTION_SCREEN
*&———————————————————————*
* Lê tela de selecção de determinado relatório e retorna uma tabela
* preparada para ser adicionada no head da ALV
*———————————————————————-*
*  –>  p_repname
*  –>  p_reptext
*  –>  p_company
*  <–  pt_listheader
*———————————————————————-*
FORM f_prep_selection_screen USING p_repname TYPE trdir-name
p_reptext
p_company
CHANGING pt_listheader TYPE slis_t_listheader.

DATA: lt_param TYPE STANDARD TABLE OF swu_repsc.

CALL FUNCTION ‘SWF_GET_REPORT_PARAMETERS’
EXPORTING
reportname              = p_repname
TABLES
parameter = lt_param
*     CONTAINER               =
EXCEPTIONS
report_not_found        = 1
report_not_type_1       = 2
OTHERS3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

DATA: l_param LIKE LINE OF lt_param,
l_list  LIKE LINE OF pt_listheader.

*  typ(1) TYPE C,   ” H = Header, S = Selection, A = Action
*  KEY(20) TYPE C,
*  info TYPE slis_entry,

* Empresa:
l_list-typ = ‘H’.
l_list-info = p_company.
APPEND l_list TO pt_listheader.

* nome do layout:
l_list-typ = ‘H’.
l_list-info = p_reptext.
APPEND l_list TO pt_listheader.

FIELD-SYMBOLS: <param>   TYPE ANY,
<t_param> TYPE ANY TABLE,
<sign>    TYPE ANY,
<op>      TYPE ANY,
<low>     TYPE ANY,
<high>    TYPE ANY,
<wa>      TYPE ANY.
DATA: l_sel(8),
l_tmp(60).

l_list-typ = ‘S’.
LOOP AT lt_param INTO l_param.
CLEAR: l_list-info, l_tmp.

IF l_param-text(2) = ‘D ‘.
l_param-text(1) = ‘ ‘.
CONDENSE l_param-text.
ENDIF.
MOVE l_param-text TO l_list-key.    “nome do parametro

IF l_param-kind = ‘P’.              “parameters
ASSIGN (l_param-selname) TO <param>.
IF <param> IS NOT INITIAL.
WRITE <param> TO l_tmp.
CONDENSE l_tmp.
MOVE l_tmp TO l_list-info.
APPEND l_list TO pt_listheader.
ENDIF.
ELSEIF l_param-kind = ‘S’.          “Select options
CLEAR l_tmp.
CONCATENATE l_param-selname ‘[]’ INTO l_tmp.
ASSIGN (l_tmp) TO <t_param>.
IF <t_param>[] IS NOT INITIAL.
LOOP AT <t_param> ASSIGNING <wa>.
ASSIGN COMPONENT ‘SIGN’ OF STRUCTURE <wa> TO <sign>.
ASSIGN COMPONENT ‘OPTION’ OF STRUCTURE <wa> TO <op>.
ASSIGN COMPONENT ‘LOW’ OF STRUCTURE <wa> TO <low>.
ASSIGN COMPONENT ‘HIGH’ OF STRUCTURE <wa> TO <high>.
IF <sign> = ‘E’.
MOVE ‘(exclui)’ TO l_list-info.
ENDIF.

CASE <op>.
WHEN ‘EQ’.
move <low> TO l_list-info.
WHEN ‘GT’.
CONCATENATE l_list-info ‘maiores que’ <low>
INTO l_list-info SEPARATED BY space.
WHEN ‘LT’.
CONCATENATE l_list-info ‘menores que’ <low>
INTO l_list-info SEPARATED BY space.
WHEN ‘LE’.
CONCATENATE l_list-info ‘menores ou iguais a’ <low>
INTO l_list-info SEPARATED BY space.
WHEN ‘GE’.
CONCATENATE l_list-info ‘maiores ou iguais a’ <low>
INTO l_list-info SEPARATED BY space.
WHEN ‘NE’.
CONCATENATE l_list-info ‘diferentes de’ <low>
INTO l_list-info SEPARATED BY space.
WHEN ‘BT’.
CONCATENATE l_list-info <low> ‘a’ <high>
INTO l_list-info SEPARATED BY space.
ENDCASE.

APPEND l_list TO pt_listheader.
CLEAR l_list-info.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.

ENDFORM.                    ” F_PREP_SELECTION_SCREEN

07
Jul
09

ler dados inseridos numa ALV GRID (não OO)

Sempre que for necessário ler dados que foram inseridos numa GRID ALV, que não seja Object Oriented, na rotina de callback do user command, deve colar-se o seguinte código:

DATA: ref_grid TYPE REF TO cl_gui_alv_grid.

IF ref_grid IS INITIAL.
CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
IMPORTING
e_grid = ref_grid.
ENDIF.
IF NOT ref_grid IS INITIAL.
CALL METHOD ref_grid->check_changed_data .
ENDIF.

Desta forma, a tabela interna que contem os dados a serem representados é actualizado com o que foi inserido/editado na ALV.

30
Jun
09

(sub)urban assault

ontem (29 de junho 2009) comecei um passeio com a maria… era para ser uma volta pequena até ao Vale do Silêncio…

Mas ela não se estava a sentir bem e voltou para casa.

Este (sub)urban assault (porque se passou nos subúrbios), foi na minha zona, nos Olivais Norte. Andei nos passeios entre os prédios, desci escadas, fui ao vale do silêncio para descer o single que lá existe…

Apesar de curto (9,86Km em 56 minutos) foi giro. Montes de lances de escadas para descer… passeios levantados por raízes, caminhos que fazem muitos “zigue-zagues” em calçada… sempre no meio dos prédios da zona e sempre no meio de espaços verdes com árvores enormes.

É experiência a repetir para quando for só uma volta rápida ou mesmo uma volta com a maria.

17
Jun
09

Vendedor

Se alguma vez for necessário pesquisar uma ordem de venda por vendedor (ou responsável de vendas), cuja informação é um parceiro de HR (um funcionário) e se por ventura for necessário criar um report cujo critério de pesquisa é o vendedor, a coisa faz-se muito fácil:

SELECT-OPTIONS: s_vendr FOR vbpa-kunnr MATCHCODE OBJECT prem.

Aqui só é necessário o matchode certo, caso contrário usa o por omição do tipo VBPA-KUNNR (clientes).




Toca a comentar!!!!!

Maio 2024
S T Q Q S S D
 12345
6789101112
13141516171819
20212223242526
2728293031  

Blog Stats

  • 5.798 hits

RSS My Experiments with ABAP

  • Ocorreu um erro; é provável que o feed esteja indisponível. Tente novamente mais tarde.