Patrocinado por
Patrocinado por Inetum

Belos diagramas de relações de tabelas

images/thumbnail.jpg - Thumbnail
O Rui Dias mostrou-me um site onde podes ver as relações que qualquer tabela standard tem com as outras. Por exemplo para a T012. E se experimentares com a KNA1 é ainda mais giro. Gostas? Eu gosto. Obrigado Rui Dias. O Abapinho saúda-vos.

Olha pai, agora sem mãos

images/thumbnail.jpg - Thumbnail
Neste artigo vou mostrar-te (e explicar-te!) como podes fazer com que um ecrã de selecção de um programa se refresque periodicamente sem intervenção do utilizador. Estás preparado?

Atalho para o campo da transacção

images/thumbnail.jpg - Thumbnail
Estás tu escrevendo furiosamente pelo SAP adentro qualquer quando de repente precisas de ir lá acima ao campo da transacção escrever /OS37 ou algo assim. Mas escreves com tanto tanto tanto fervor que a simples ideia de largar o teclado por um momento para ir com a mão ao rato te parece catastrófica. Então, em vez disso, carregas em 3 teclas: CTRL-SHIFT-7. Obrigado a Renato Sousa pela dica. O Abapinho saúda-vos.

Cria sessões com o teclado

images/thumbnail.jpg - Thumbnail
Queres criar uma nova sessão e roubaram-te o rato. Não faz mal. Carregas no CTRL e na tecla + e vais ver uma nova sessão a aparecer. Obrigado Renato Sousa pela dica. E obrigado a freeimageslive / gratuit pela foto. O Abapinho saúda-vos.

Narcisismo digital

images/thumbnail.jpg - Thumbnail
Chama-se reflexão à capacidade de um programa se ver a si próprio. O ABAP tem uma série de capacidades reflexivas como o RTTS ou a capacidade de gerar código dinamicamente. Além disso há mais umas funções assim e assado que fazem isto e aquilo. Hoje apresento-vos uma delas: GET_GLOBAL_SYMBOLS

Bom programa para encontrar user-exits

images/thumbnail.jpg - Thumbnail
Volta não volta lá andamos nós à procura de user-exits e BADIs, BTEs e quejandos. A SAP não ajuda. Mas vão aparecendo aqui e ali programas, quase sempre chamados Z_USEREXIT, que dão uma ajuda nessa ingrata busca. Pois recentemente fiquei a saber de mais um. Partilho-o aqui porque é o melhor que vi até hoje: https://wiki.sdn.sap.com/wiki/display/Snippets/Find+User-exits,+BADIs,+BTEs,+Etc+by+TCode+or+Program Obrigado Bruno Esperança pela dica. E obrigado a rverscha pela foto. O Abapinho saúda-vos.

Classe para converter STRINGs

images/thumbnail.jpg - Thumbnail
Sabes como às vezes tens uma variável do tipo STRING e precisas de a enviar para uma função que precisa dela no tipo SOLIX? Acontece-me frequentemente. Pois descobri esta classe óptima que permite converter strings entre os mais variados formatos: CL_BCS_CONVERT

Salta a parede

images/thumbnail.jpg - Thumbnail
Baixa a música. Fecha a porta. Olha à volta. Está alguém a olhar para ti? Não estás a ser observado? Nem câmaras de vigilância? Então, podemos continuar.

Evitando a concorrência num programa ABAP

images/thumbnail.jpg - Thumbnail
Dizem que a concorrência no comércio é boa. Boa para os consumidores, isto é. Faz descer os preços e assim. Mas dentro dos computadores prejudica quem os consome. Normalmente em ABAP combate-se a concorrência ao nível dos dados, bloqueando ( euqueue ) determinadas tabelas com base na sua chave. Mas por vezes pode ser necessário algo mais violento como garantir que um programa não pode correr mais do que uma vez ao mesmo tempo. Para fazer isso pode usar-se o objecto de bloqueio ESINDX.

Mergulhando no Caos com as classes CL_ABAP_RANDOM*

images/thumbnail.jpg - Thumbnail
Os programas ABAP são todos demasiado bem comportados; demasiado previsíveis. Enquanto demiúrgos, temos a obrigação moral de lhes dar um pouco de livre arbítrio, dar-lhes a cheirar o caos, mostrar-lhes as árvores da vida e do conhecimento e, num passe de kenosis , deixá-los à vontade para trincarem a maçã. Só assim nos sentiremos completos e realizados; só assim poderemos descansar ao sétimo dia. E para isso, nada como os números aleatórios.

Parâmetros complexos em funções remotas

images/thumbnail.jpg - Thumbnail
As chamadas a funções remotas (por RFC) não suportam parâmetros com estruturas complexas ( deep structures ). Por outras palavras, se algum dos parâmetros tiver uma estrutura em que um dos seus campos seja outra estrutura ou uma tabela interna, azar, não dá. Desistes? Não desistas. O Abapinho dá-te a solução: serialização.

F1 nos campos do ecrã de selecção

images/thumbnail.jpg - Thumbnail
Acabaste de fazer um belíssimo relatório encabeçado por um ecrã de selecção atafulhado de campos muito interessantes. Mas o mais normal é que, se tiver alguma complexidade, quem correr o teu relatório não saiba para que serve cada um dos campos. Para isso há, claro, as especificações técnica e funcional. Há? E mesmo que haja, não seria mais simples se ela pudesse fazer F1 em cima de cada campo e logo ali aprender para que serve? Vou mostrar-te duas formas possíveis de dares informação individualizada sobre os campos de um ecrã de selecção.

Finalmente o ABAP sabe Excel

images/thumbnail.jpg - Thumbnail
Há várias formas de criar um Excel em ABAP. Umas mais masoquistas, outras menos masoquistas; umas mais foleiras, outras menos foleiras.

Saltando alegremente de linha em linha

images/thumbnail.jpg - Thumbnail
No canto inferior direito do editor ABAP, na linha de status, diz qual é a linha e coluna em que o cursor se encontra. Se fizeres duplo-clique em cima dessa informação aparece-te uma janela de diálogo onde podes introduzir um número de linha para saltar directamente para lá. O atalho de teclado é CTRL-O. Dá muito jeito. Obrigado Fábio Branquinho pela dica. E obrigado a juandesant pela foto. O Abapinho saúda-vos.

Pesquisar em menus

images/thumbnail.jpg - Thumbnail
Sabias que podes pesquisar nos menus SAP? Provavelmente sim. Mas olha, eu não. Passei anos a perscrutar o menu S000 em busca das mais variadas coisas. Estou certo de que se tivesse feito uma pesquisa teria encontrado muitas delas num instante. Às vezes uma pessoa não se lembra do óbvio. Se és essa pessoa, esta dica é para ti. Obrigado Sérgio Fraga pela dica. O Abapinho saúda-vos.