"
Etiqueta > sysadmin
Apoiado por

A transacção que queria chamar outra e não podia

O Manelinho criou a transacção ZFB01 associada ao programa ZFB01 que faz lá umas coisas e depois faz CALL TRANSACTION à FB01. A seguir veio o Joãozinho e correu a transacção ZFB01.

Conseguiu começar a corrê-la porque tem permissões para a transacção ZFB01. Mas a meio teve um erro porque não tem permissões para a transacção FB01.

Tanto o Manelinho como o Joãozinho sabiam que os administradores de sistema nunca na vida deles darão ao Joãozinho autorizações para correr a FB01.

Ler o resto do artigo! »

Eu chamo-te e tu chamas-me

Quando chamas uma função por RFC tens de lhe dar a RFC DESTINATION do sistema remoto:


CALL FUNCTION ‘ZESPIRREI’
  DESTINATION ’sistema_longe_daqui’.

E se, por alguma razão, precisares que a função que corre no sistema remoto chame uma função no sistema original. Sabes fazê-lo?

Ler o resto do artigo! »

Abapinho Dev Tools: Dependencies

O Nuno Morais desenvolveu uma ferramenta muito útil que permite comparar objectos entre sistemas e que funciona muito melhor do que a transacção SREPO.

O Abapinho passa a ser o seu repositório oficial.

Código no GitHub.

Em breve, instruções. Até lá vai experimentando, é intuitivo. E se gostares ou tiveres sugestões deixa aqui um comentário.

Obrigado Nuno por teres desenvolvido isto e por o partilhares com o mundo no Abapinho.

Obrigado AJ Cann pela foto.

O Abapinho saúda-vos.

Desbloquear objectos numa ordem de transporte

Quando alteras um objecto e o guardas numa ordem de transporte ele normalmente fica bloqueado. Dentro da ordem de transporte é podes bloquear objectos que não estejam já bloqueados que não estão já bloqueados noutra ordem. Mas, uma vez bloqueados, como é que se desbloqueiam?

Ler o resto do artigo! »

Descobre quem transportou uma ordem

No outro dia apareceram uma série de coisas espatifadas na nossa máquina de testes. De repente ninguém podia trabalhar na máquina. Na STMS encontrámos uma série de ordens de transporte indevidamente transportadas para lá. O utilizador que aparece associado a cada uma dessas ordens é o dono dela. Mas será que a culpa é dele? Não terá sido outra pessoa a fazer o transporte?

Como saber?

Ler o resto do artigo! »

Obter informação sobre um sistema remoto por RFC

Aqui está uma funçãozinha fixe para obter alguns detalhes de um sistema remoto acessível por RFC:

RFC_SYSTEM_INFO

Não posso dar aqui nenhum exemplo porque estaria a revelar informação segreda importantíssima sobre o meu cliente que depois seria certamente utilizada pelos maus para fazerem espionagem industrial. Mas é fácil de testar na SE37.

Obrigado kingofthebigmacs pela foto.

O Abapinho saúda-vos.

Aquele sistema RFC está vivo?

Queres invocar uma função RFC noutro sistema mas, porque não és necrófago, só o queres fazer se ele estiver vivo.

Precisas então de uma forma de saber se esse determinado sistema destino RFC está vivo.

Como fazes?

O Charles Santana faz assim:


DATA: rfcdest         TYPE rfcdest,
            ping_status TYPE /sdf/e2e_traffic_light_numeric.

CALL FUNCTION '/SDF/RFC_CHECK'
  EXPORTING
    iv_destination = rfcdest
    iv_ping        = 'X'
    iv_logon       = 'X'
    iv_latency     = 'X'
  IMPORTING
    ev_ping_status = ping_status.
if lv_ping_status <> 1.
* está morto.
endif.

Obrigado Charles.

O Abapinho saúda-vos.

R3TR vs LIMU

Espatifaste o sistema produtivo: fizeste uma alteração a um método de uma classe (ou a uma função, vá). Outra pessoa faz outra alteração a outro método da mesma classe (ou a outra função do mesmo grupo de funções, vá) e grava-a num transporte diferente. Quando transportas as tuas alterações para produtivo descobres que a classe (ou função, vá) agora tem um erro de sintaxe porque as alterações tinham dependências. Descobres também que agora, e até resolveres este problema, todos os teus colegas funcionais te odeiam.

Ler o resto do artigo! »

SAP de aluguer

Se precisas mesmo de aceder a um SAP e ninguém te deixa e não tens um computador onde o possas instalar ou não tens ciência ou paciência para o fazer, podes sempre alugar.

Ler o resto do artigo! »

Executa comandos no computador do utilizador

Já há uns tempos que o Abapinho não mexia com o fogo. Hoje mexerá.

Porque hoje mostrará como executar comandos DOS na máquina local do utilizador. Quando tiveres terminado de ler este artigo estarás apto a formatar o disco rígido de todos os teus utilizadores. Lidar com o perigo ajuda-nos a tomar consciência do poder que temos e da responsabilidade que vem junto com ele. Querido leitor, segue a tua consciência.

Não tentes isto em casa! Tenta no escritório ;)


DATA: i_returncode TYPE i.

CALL FUNCTION 'GUI_EXEC'
  EXPORTING
    command = 'FORMAT'     " É pá, isto assim não é um HELLO WORLD!
*    parameter = 'T:'
  IMPORTING
        returncode = i_returncode.

Vá, vá, estava a brincar. Nada de brincar com o fogo. Queimas-te.

Obrigado alifaan pela foto.

O Abapinho saúda-vos.

O SAPlink

O SAPlink é um programa Z que se instala no ambiente de desenvolvimento e que permite importar e exportar os mais variados tipos de objectos do Workbench.

Olha aqui exemplos de como o SAPlink pode ser usado:

  • Transferir uma tabela de um sistema SAP para outro
  • Partilhar uma classe na Internet
  • Fazer um backup local de segurança de um conjunto de programas antes de fazer uma alteração perigosa
  • Guardar um desenvolvimento no nosso repositório pessoal (no Evernote, claro) para o caso de vir a precisar dele mais tarde noutro projecto
  • Etc.

Ler o resto do artigo! »

Manter grupos de autorização de manutenção de tabelas

Há alguns projectos em que o grupo de autorizações associados à manutenção de tabelas é sempre &NC&, ou seja, &Não cuidado&. É sinal de que lá é tudo amigo e ninguém faz mal a ninguém. Mas há outros projectos em que os grupos de autorização são levados a sério. O que não é sinónimo de dizer que estão organizados. A sério ou não, o normal é acabar tudo uma grande salgalhada onde ninguém sabe quem é que está autorizado a fazer o quê.

Esta dica talvez ajude.

Ler o resto do artigo! »

A sua password expirou. Mude-a 5 vezes.

Não é incomum criarmos uma relação emocional com as nossas passwords. Por isso, é sempre com alguma dor que se recebe aqueles abjectos avisos ameaçadores que dizem que “a sua password vai expirar”. Brevemente seguidos pelo duro golpe que recebemos no coração quando surge a inevitável ignóbil invectiva que diz que “a sua password expirou”. Nesses momentos a mágoa é tanta que todas as musas nos abandonam, temos uma cãibra na imaginação e ficamos ali, especados, esquecidos, esvaziados de qualquer ideia que nos ajude a escolher a nossa próxima palavra-chave.

Mas isso era dantes.

Para o futuro, proponho o seguinte: usa um dos maravilhosos métodos manhosos que o Abapinho te ensinou para editar a tabela USR02. Vai ao registo do teu utilizador e apaga o conteúdo dos campos OCOD1, OCOD2, OCOD3, OCOD4 e OCOD5. E o SAP esqueceu. Foi um ar que lhe deu. Agora já podes tornar a usar a palavra-chave-do-teu-coração.

Obrigado Allan Oliveira pela dica.

O Abapinho saúda-vos.

Bate às portas certas

Para tua conveniência, aqui tens as portas TCP/IP utilizadas pelo NetWeaver Application Server ABAP e pelo Internet Connection Manager (ICM):


Serviço Número porta/Nome serviço Por defeito Fixo
Dispatcher 32NN/sapdpNN 3200 x
Gateway 33NN/sapgwNN 3300 x
Gateway 48NN/sapgwNNs 4800 x
ICM HTTP 80NN 8000
ICM HTTPS 443NN Inactivo
ICM SMTP 25 Inactivo
Message Server 36NN/sapmsSID 3600/sapmsC11
Message Server HTTP 81NN 8100
Message Server HTTPS 444NN Inactivo
Central System Log UDP: 12NN, 13NN, 14NN, 15NN Inactivo

Para saberes mais consulta este documento da SAP.

O Abapinho saúda-vos.


Acerca do Abapinho
O Abapinho é suportado pelo WordPress
Artigos (RSS) e Comentários (RSS).