- 12 Dec 2022
- 3 Minutes to read
- DarkLight
SAP Konnektörü Sınırları
- Updated on 12 Dec 2022
- 3 Minutes to read
- DarkLight
PaperWork SAP Konnektörü, PaperWork ile SAP arasında kod yazmadan hem iş akışlarında hem de elektronik formlarda veri alışverişinizi sağlar. Temelde SAP üzerinde bulunan iş nesneleri (BAPI ve Zli fonksiyonlar) tüm SAP platformu tarafından çağrılabilir, aynı zamanda bu iş nesneleri konnektör ile de çağrılabilir. Aşağıda çağrım esnasında dikkat edilmesi gereken noktalar anlatılmıştır;
- Konnektör ile çağrılacak fonksiyonların tip tanımları belirlenmiş olmalı.
- Veri tipi tip tanımı olmayan fonksiyonlar konnektör ile çağrılamaz. Aşağıdaki ekranda örnek gösterilmiştir.
- Generik tip kullanımı yapılamaz.
- Generik tip kullanımı olan fonksiyonlar çağrılamaz.
- İç içe yapılar kullanılamaz.(Table in Table)
- Fonksiyon parametrelerinde iç içe geçmiş yapılar kullanılamaz. Örneğin; Fonksiyon parametresinin içerisindeki alanlardan biri tablo olarak tanımlanmıştır. Bu şekilde iç içe geçmiş yapılar kullanılamaz. Bunun yerine bu yapı içerisindeki tablo/tablolar fonksiyona ayrı bir parametre ile tablo olarak eklenmelidir.
- Aşağıdaki tabloda SAP tarafında kullanılan veri tipine karşılık gelen PaperWork veri tipleri ve sınırları belirtilmiştir. Eğer veri tipi PaperWork tarafından desteklenmiyor ise kullanılmamalıdır.
SAP Veri Tipi | Sap Açıklması | Örnek Değer | Paperwork Tipi | PaperWork Açıklama |
ACCP | Posting Period YYYYMM | 201812 | Yazı | Dönem Değişkenidir |
CHAR | Character String |
| Yazı |
|
CLNT | Client |
| Yazı |
|
CUKY | Currency Key for Currency Field |
| Yazı |
|
CURR | Currency Field in BCD Format |
| Para |
|
DF16_DEC | Decimal Floating Point Stored in BCD Format |
| Para |
|
DF16_RAW | Decimal Floating Point Stored as Binary Number |
| Para | Desteklemiyor |
DF16_SCL | Decimal Floating Point with Scaling (obsolete) |
| Para |
|
DF34_DEC | Decimal Floating Point Stored in BCD Format |
| Para |
|
DF34_RAW | Decimal Floating Point Stored as Binary Number |
| Para |
|
DF34_SCL | Decimal Floating Point with Scaling (obsolete) |
| Para |
|
DATS | Date in Format YYYYMMDD |
| Tarih | Tarih Değişkenidir |
DEC | Packed Number in BCD Format |
| Para |
|
FLTP | Floating Point Number |
| Para |
|
INT1 | 1-Byte Integer, 0 to 255 |
| Sayı | Negatif sayı kabul etmez. Max 255 |
INT2 | 2-Byte Integer, -32.768 to 32.767 |
| Sayı | -32.768 ile 32.767 aralığında sayı |
INT4 | 4-Byte Integer, -2.147.483.648 to +2.147.483.647 |
| Sayı | -2.147.483.648 ile 2.147.483.647 aralığında sayı |
INT8 | 8-Byte Integer |
| Sayı | -2.147.483.648 ile 2.147.483.647 aralığındaki değerleri kabul eder. |
LANG | Language key | T,E… | Yazı | Daha büyük değerlerde işlem yapılamaz |
LCHR | Long Character String |
| Yazı |
|
LRAW | Long Byte String |
|
| Desteklenmiyor |
NUMC | Numerical Text | 123, 0043 | Yazı | Sadece rakamlardan oluşan metinleri kabul eder |
PREC | Obsolete Data Type |
|
| Desteklenmiyor |
QUAN | Quantity Field in BCD Format |
| Para |
|
RAW | Byte Sequence |
|
| Desteklemiyor |
RAWSTRING | Byte String (BLOB) |
|
| Desteklemiyor |
SSTRING | Character String |
| Yazı |
|
STRING | Character String (CLOB) |
| Yazı |
|
TIMS | Time in Format HHMMSS |
| Saat |
|
UNIT | Unit Key of Quantity Field | ADT,KG | Yazı | Miktar birim kodu. |
VARC | Obsolete Data Type |
|
| Destekelenmiyor |
8.SAP Konnektörü aracılığı ile dönen veri içinde HTML/XML tag benzeri karakterler ve karakter serileri, çift tırnak, tek tırnak gibi karakterler bulunmamalıdır. Ayrıca görsel olmayan "alt satıra geçme" karakteri (\n) gibi özel karakterler bulunmamalıdır. Konnektör PaperWork ile XML dosyaları yardımı ile haberleşir. İlk istek sırasında bir XML dosyası ilgili parametreler ile oluşturulur ve konnektöre gönderilir. Konnektör bunu çözümleyerek SAP üzerinde ilgili fonksiyonu çalıştırır. Sonucunu alarak tekrar bir XML dosyası oluşturur. Bu işlemler esnasında bahsedilen karakterler soruna neden olabilir. Bu denenle giden ve gelen veri içerisinde bu karakterler kullanılmamalıdır.
Çevik bir sistemde minimum kod yazılmalı, mümkünse tüm kurgu sihirbazlara dayandırılmalıdır.
- Ara yüz (veya SAP Aktivitesi) bir XML oluşturur. Bu XML de doldurması gereken alanlar ile beraber SAP Konnektörü servis katmanına gönderir.
- Katman XML'i okur, gerekli BAPI çalıştırılır, oluşan sonuç yine bir XML oluşturularak geri gönderilir.
- XML'i alan ara yüz bunu açar, içindeki verileri uygun şekilde veri setine dönüştürerek kullanır.
Bunun anlamı PaperWork listesi direk veri tabanı üzerinden işlem yaparken SAP Konnektörü 2 sefer XML oluşturma, 2 sefer de XML'i açma işlemini gerçekleştirir. Yani performansı veri tabanına göre çok yavaştır. Eğer çağrılan BAPI örneğin kayıtlı tedarikçi listesi, ürün listesi gibi listeler ise ve kayıt sayısı çok ise (örneğin 5.000 adet) performans problemleri yaşanır. Aynı anda benzer formlarda bu işlem birden fazla kullanıcı tarafından yapılacak ise veya aynı form üzerinde buna benzer birden fazla işlem var ise sorun daha fazla büyür.
Bunu gidermek için 2 yöntem kullanılabilir;
b) Liste için sabit bir PaperWork Listesi oluşturulur. Zaman bazlı çalışacak bir metod yazılır. Yazılan metod örneğin günde 1 sefer çalışarak BAPI verisini alıp bu listeyi günceller. Elektronik formda da bu liste kullanılır.
Not: Bu çözüm de 5-10 bin satırlık listelerde çözüm olmaz. Bu kadar uzun bir liste kullanıcının önüne gelse de kullanıcı seçim yapamaz.