Arquivo da categoria 'SAP'

07
Out
08

ALV Grid com Input

Quando as ALV Grid que têm input fields não estão a retornar correctamente os valores preenchidos, é uma seca…

Pode ser que isto só acontece para ALV Grids criados com as funções REUSE*, mas como estas até são práticas…

Para não se apanhar barretes:

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.

Wow… ou não… é tão básico que faz impressão…

05
Set
08

Alterar Ordens de Venda

Para alterar ordens de venda, é só usar a bapi BAPI_SALESORDER_CHANGE é fácil, barato e dá milhões…

29
Ago
08

rotinas e requisitos de pricing

Por vezes é necessário dar inteligência so SAP. No pricing é bastante usual, uma vez que cada cliente tem a sua forma de pensar e de fazer as coisas, e neste aspecto, normalmente são muito picuinhas

O “sitio” onde se podem implementar as rotinas e requisitos é na transacção VOFM.

Os requisitos, são verificações que se podem fazer nas condições. Existem muitas standard, mas para aqui o que interessa são mesmo as específicas.

Para as custom (defenidas específicamente para o cliente) estão disponíveis as numerções de 600 a 999. Para cada um destes requisitos, são criados duas rotinas:

  1. KOBEV_XXX;
  2. KOBED_XXX;

1. A primeira é ao nível de cabeçalho e permite a verificação de todas as condições;

2. A segunda permite verificação ao nível do item, e só tem em consideração o item modificado.

Para dar indicação de erro, o campo de sistema SY-SUBRC deve ser afectado com um valor diferente de 0 (zero).

Os campos a serem usados, básicamente são todas as variáveis globais em SAPLV61A.

Para mais detalhes relativos aos requisitos, ver a SAPNOTE 156230.

Relativamente às rotinas:

As rotinas permitem calcular o valor das condições de uma forma particular e que não existe no standard. Neste caso apenas temos disponíveis a numerção entre 900 e 999.

O modo de criar é em tudo semelhante aos requisitos, cria também duas rotinas.

A tabela interna XKOMV contém todos os itens do esquema de pricing que foi aplicado ao item em questão.

Após efectuar os cálculos necessários, estes devem ser colocados na variável XWERT.

Mais detalhes podem ser encontrados aqui.

NOTA IMPORTANTE:

Criadas as rotinas ou requisitos, estas devem ser activadas: “Processar”->”Activar”

Após a implementação das rotinas deve-se executar o report RV80HGEN.

27
Ago
08

há dias assim…

Todos vós devem ter daqueles dias em que nada corre bem… Daqueles dias em que por mais que se esforcem, não se consegue fazer nada…

Pois bem… eu andei 3 (TRÊS) dias de volta de uma coizinha da treta, e que acabou por ficar a funcionar por um mero acaso.

Após um sem fim de debugs ao standard do SAP, pesquisas na net (nomeadamente no site dos gurus: SDN) consegui, finalmente, por a coisa a funcionar!!!!

Yupiiiiii!!!

No entanto, fico frustrado… era tão simples… como não vi isto antes?!?!!?

Era “só” um problema de datas…

Entretanto, fica o apontamento: para criar fornecimentos a partir de várias ordens (SD) ou pedidos (MM), o módulo de função a usar é o SHP_VL10_DELIVERY_CREATE, que corresponde ao funcionamento das seguintes transacções:

  • VL10
  • VL10A
  • VL10B
  • VL10C
  • VL10D
  • VL10BATHC
21
Ago
08

aplication logs

Certamente já ouviram falar em (SAP) aplication logs… Se não ouviram lêm agora :P

Bom, eu sei pouco acerca deste assunto, mas devia saber mais… no entanto o pouco que sei é que esta história se aplication logs, é um mecanismo que o sap tem para armazenar mensagens de uma determinada aplicação/report/transacção…

Existem três transacções úteis:

  1. SLG0 – Defenir pontos para os quais devem ser guardadas as mensagens;
  2. SLG1 – Analizar os logs (qualquer user – desde que tenha autorização – pode vir consultar e analisar os logs);
  3. SLG3 – Apagar os logs, tipicamente tarefa assignada a administradores de sistema.

Abaixo está o link para um documento que tem um resumo interessante acerca dos aplication logs: aplication_logs.

13
Ago
08

Ler Ordens de Venda

Habitualmente para se aceder à informação das ordens de vendas recorre-se às seguintes tabelas:

  • VBAK – Cabeçalho;
  • VBAP – Itens;
  • VBEP – Divisões de Remessa;
  • VBPA – Parceiros;
  • VBKD – Dados Comerciais;
  • KNVV – Clientes;
  • MARA – Materiais;
  • VEKP – Embalamento (header);
  • VEPO – Embalagem (itens/conetúdo);

e outras que estão ligadas a estas.

E porque não usar uma BAPI que já dá quase tudo e mais alguma coisa (pelo menos à primeira vista..)???

Falo da BAPISORDER_GETDETAILEDLIST que apenas recebe como parametros de entrada uma lista de ordens de venda e uma estrutura preenchida com os dados que se pretendem vizualizar.

Porreiro, ?!

08
Ago
08

wizards

Normalmente a malta das programações, especialmente os gurus, não gostam de Wizards. Mas a realidade é que muitas vezes dão muito jeito.

Hoje apresento-vos (aos ABAPers) o SAPLink e a forma como podem criar ALVs (grid) através de wizards.

Cintando o site:

SAPlink is an open source project that aims to make it easier to share ABAP developments between programmers. It provides the ability to easily distribute and package custom objects.

Ora bem, neste sitio da net, é possivel encontrar vários wizards, mas para isso é necessário “instalar” alguns reports antes de se poder começar a tirar partido.

Deicho-vos aqui como proceder à instalação do SAPLink. Trata-se de uma entrada no blog do SDN (SAP Developer Network).

Ainda no SDN, pode-se encontrar do mesmo autor, as “instruções” e requisitos para a instalação do ABAP Report Wizard.

Isto e muito mais no wiki do SDN AQUI

07
Ago
08

BAPI – Error Logs

Quando se trabalha com BAPIs, normalmente existe a necessidade de tratar os erros. Erros esses que normalmente vem nas seguintes estruturas:

  • BAPIRET1
  • BAPIRET2
  • BAPIRETURN
  • BDCMSCOLL

Se quisermos ter um log de erros de várias operações é bom ler estas estruturas e colocar o texto numa tabela pronta a ser exibida, por exemplo numa ALV.

Para uniformizar os retornos, podemos usar as seguintes FMs:

  • BALW_RET1_TO_RET2 – Map Structure BAPIRET1 to Structure
  • BALW_RETURN_TO_RET2 - Map Structure BAPIRETURN to Structure BAPIRET2
  • CONVERT_BDCMSGCOLL_TO_BAPIRET2 – Map BDCMSGCOLL to structure BAPIRET2

De seguida é necessário ler as mensagens, podendo-se usar a FM

  • MESSAGE_PREPARE – que recebe os dados da mensagem: tipo, ID, número e as várias variáveis e retorna o texto composto, pronto a ser colocado numa estrutura “boa” para ser apresentada no ecrã.

E pronts, agora é só apresentar, seja numa ALV, seja numa POPUP…

29
Jul
08

carregar fontes no SAP

Esta funcionalidade é pouco usada (pelo menos por mim), mas dá um jeitaço!

A transacção para carregar fontes TTL (True Type) é a SE73, e o seu funcionamento é simples.

Para mais detalhes, verificar o seguinte link: http://saptechnet.blogspot.com/2006/10/upload-fonts-in-sap-system-font.html

25
Jul
08

inforecords

Inforecords – são registos que relacionam uma série de dados relativamente a materiais, centros, organizações de compra, venda e os repespectivos preços.

Fisicamente estão nasa tabelas:

  • EINA: Registro info de compras – dados gerais
  • EINE: Reg.info para compras – dados de organização de compras

Algumas FM/BAPIS interessantes:

  • BAPI_INFORECORD_GETLIST: retorna todas as entradas para um determinado inforecord, material, grupo de materiais,…
  • ME_INITIALIZE_INFORECORD: inicializa as estruturas internas
  • ME_DIRECT_INPUT_INFORECORD: cria o inforecord
  • ME_POST_INFORECORD: torna-o efectivo na Base de dados

O inforecord já é criado, no entanto, a coisa não corre totalmente bem. Quando vou a vizualizar o Inforecord criado, o preço e os factores de conversão não aparecem correctamente. Aliás… não aparecem….

Se alguém tiver dicas, que as deixe nos comentários! OBG!!!