Sum Statement with For All Entries in ABAP

It’s not possible use ‘SUM’ statement in a select query with ‘FOR ALL ENTRIES’ statement but it is possible in other way. Here is the solution.

You can loop in your internal table that you will use it in select query as for all entries statement. You can collect all ur entries in internal table to range table and you can use your range table as internal table. So you don’t need to use for all entries because you have your selection criteries in your range table. And ABAP editor led you to use range table with SUM statement. Check the example.

Posted in English | Tagged , , , | Leave a comment

Dynamic Query in Abap

Generally tables and conditions are clear for our programs. What if we don’t know the table name and conditions before program started. There dynamic query appears. At runtime we can specify the table name and conditions with dynamic queries. I tried to prepare an example which i take the table name and conditions from an excel file. You can give the conditions and table names in other ways but important point is the way of getting data.

The important point is types of values must be compatible with types of components in query.

Posted in English | Tagged , , | Leave a comment

Abap’ta Dinamik Sorgu

Birçok programda veritabanımızda bulunan tablolardaki datalara ihtiyaç duyarız. Genelde bellidir hangi tablodan hangi veriyi hangi koşullarda çekeceğimiz. Peki belli olmayan durumlarda ne yapıyoruz? İşte burada devreye dinamik sorgu giriyor. Runtime’da tablo isim ve koşulları vererek istediğimiz tablodan istediğimiz koşullarda data çekebiliriz. Aşağıda tablo isimlerinin ve koşulların bir excel dosyasından alındığı bir örnek görebilirsiniz. Bu koşulları siz başka şekilde de verebilirsiniz, önemli olan tablolardan datayı nasıl çektiğimiz.

Burda dikkat edilmesi gereken yazdığımız seçim kriterinin veri tipleriyle uyumlu olması. Kolay gelsin..

Posted in Turkish | Tagged , , | Leave a comment

Parametreyi Read-Only Yapma

Tanımladığımız seçim ekranında bir parametreye belli bir değer atayıp parametrenin read only olmasını aşağıdaki kod bloğu aracılığıyla yapabiliriz.

  • Ekrandaki her değişiklikten sonra parametrenin üstüne yazmaması için refresh yapılır.
  • Screen elemanlarında dönerken istediğimiz elemana geldiğinde input özelliği 0 yapılır.
  • Böylelikle kullanıcı sadece parametrenin değerini seçim ekranında görüntüleyip değiştirme yapamayacaktır.

    Posted in Turkish | Tagged , , , | Leave a comment

    ALV’de Ara Toplam Alma

    Listemizdeki nümerik alanlar için ara toplam almak için aşağıdaki adımları uygulamamız yeterli olacaktır.

  • REUSE_ALV_GRID_DISPLAY fonksiyonundaki it_sort parametresine aynı tipte bir tablo tanımlayarak aşağıdaki şekilde bu tabloyu doldurmalıyız.
  • Oluşturduğumuz fieldcatalog’ta da toplanmasını istediğimiz değerler için toplanacak işareti koymamız gerekir.
  • Bu parametreler fonksiyonda it_fieldcat ve it sort parametrelerine atandığı taktirde istenen alanlar için ara toplam alınacaktır.

    Posted in Turkish | Leave a comment

    Different number of parameters Error in Abap

    I faced with a problem when i write a parametric form and wanted to shared the solution..
    An error exists when we write parametric form and call it with its parameters.


    In this situation an error exists:
    Different number of parameters in FORM and PERFORM (routine:
    form_name, number of formal parameters: 2, number of actual
    parameters: 1)

    The reason is defining parameter with type of global internal table directly. Here it is understood like an another parameter so that error exists.
    To solve this problem, we need to define parameter like global table type. It will be enough to solve it. Codes should be changed as follows:

    Hope, it helps..

    Posted in English | Tagged , | Leave a comment

    Abap Parametre Uyuşmazlığı Hatası

    Abap’ta formları parametrik olarak yazınca bir hata aldım ve bu hatayı nasıl çözdüğümü paylaşmak istedim.
    Parametre sayısı aynı olmasına rağmen parametre sayılarını farklı algılıyor eğer aşağıdaki gibi yazarsak.

    Bu durumda şu hatayı alıyoruz:

    Different number of parameters in FORM and PERFORM (routine:
    form_name, number of formal parameters: 2, number of actual
    parameters: 1)

    Buradaki sorun formu yazarken parametreyi direkt olarak internal table tipinden tanımlamak. Bu durumda onu da başka bir parametre gibi algılayıp yazdığımızdan fazla parametre sayısı olduğunu düşünüyor.
    Bu sorunu çözmek için bir global tablo tipi tanımlayıp parametreyi bu tipte tanıtmak yeterli olacaktır. Kodu aşağıdaki gibi değiştirirsek sorun çözülmüş olacaktır. Birilerinin işine yaraması dileğiyle, kolay gelsin.

    Posted in Turkish | Tagged , , | Leave a comment

    Abap Collect Komutu

    Numerik alanların toplanıp tek bir satırda gösterilmesini sağlar. Internal table içerisinde döngü kullanılarak Collect komutuyla birlikte numerik alandan önceki alanlar aynı kalmak koşuluyla numerik alanlar toplanır. Aşağıda derslere ait kod, ad ve alınan not bilgisi verilmiştir. Aynı ders için kod ve ad aynı kalacağından Collect komutu sadece not alanlarını toplayacaktır. Örnekte derse ait ortalamayı hesaplamak istediğimden bir sayaçla kaç tane satırın toplandığını hesaplayıp Collect sonrası gelen toplam notu sayaca bolerek ortalamayı hesaplıyorum. Diğer programlama dillerinde ( C++, C# ) bu durum için daha fazla kod yazmak gerekmektedir. Collect komutu aracılığıyla bu durum daha basit bir şekle indirgenmiştir.

    Posted in English | Tagged , | Leave a comment

    Abap Inner Join Example

    Inner join is done with the same way in other systems. The difference is sending data to an internal table. Here is the complete code.

    You can display data that comes with your selection by using LOOP statement or you can do what ever you want with that data.

    Posted in English | Tagged , , | 1 Comment

    Abap Inner Join Örneği

    Inner join mantığı diğer sistemlerdekiyle aynı şekildedir. Farklı olarak yapmanız gereken seçtiğiniz verileri bir Internal Table’ın içine atmaktır. Örnek kod aşağıdaki gibidir.

    Daha sonra istenirse bu ara tablo içerisinde Loop yapılarak değerler yazdırılabilir ya da başka herhangi istenen bir işlem yapılabilir.

    Posted in Turkish | Tagged , | Leave a comment