12 Aralık 2022 Pazartesi

Debug the Background Job

 

Background job’lar için alternatif debug yöntemleri:

Örnek uygulama:BTCLOOP standart programı ile job kurulumu yapılır.

1-SM37’den çalışan job bulunur.Job menusunden Capture:active job seçimi yapılarak debug mode geçilir


2-SM50 ekranından çalışan program bulunur.Administration->Program->Debugging mode geçerek debug’a düşebilirsiniz.



3-Bitmiş bir job’ınızı JDBG ile debug edebilirsiniz.JobName tıklayıp komut satırına JDBG yazarak debug moda düşebilirsiniz.


4-Job kurulumu sırasında RSWAITSEC ve BTCLOOP programlarını önce kurarak debug modda geçerek bir sonraki job’ı debuglayabilirsiniz.

 

 

21 Kasım 2022 Pazartesi

Date manipulation in CDS Views

 

Date manipulation in CDS Views


   //Travel.end_date        as EndDate,

      cast( 

      concat(

        concat(

          concat(substring(Travel.end_date, 7, 2), '.' ),

          concat(substring(Travel.end_date, 5, 2), '.' )

        ),

        substring(Travel.end_date, 1, 4)        

      )

    as abap.char( 10 )) as EndDate,


Fiori output :


9 Kasım 2022 Çarşamba

Table is too long (>4030) hatası

 
    Z'li bir tablonuza yeni alanlar eklediniz.Data element'lerinizin toplam uzunluğu 4030 geçtiği zaman tablonuz aktive olmayacaktır.Çözüm yolu için 3 yöntem denenebilir.

1-Tablonuzdaki kullanılmayan alanları çıkarmak.

2-Tablonuzdaki data element'lerin uzunluğunu azaltmak.

3-Z'li tablonuzu 2'ye ayırmak.Tablonuza yeni eklediğiniz alanları yeni bir tablo oluşturup key alan bağlantısı kurarak buraya kaydetmek

4-Basis tarafından DB extend edilebilir.SNOTE yüklemeleri yapılabilir.Ama bu SAP tarafından önerilmemektedir.

Hata mesajı


extras -> Table width/Lenght



4 Kasım 2022 Cuma

BRF+ Create a decision table and call function

 

1-     BRF+,BRFplus,FDT_WORKBENCH - BRFplus Workbench  işlem kodları ile BRF+ tools’a gidilir.

2-     Create Application ile yeni bir brf+ application oluşturulur.



3-     Sağ tıklayıp Create->Data object->Structure oluşturuyoruz.Kullanacağımız data elementleri tanımlıyoruz.

 



SE_AIRLINE:

CARRID               S_CARR_ID         CHAR     3             0             Airline Code

CARRNAME        S_CARRNAME    CHAR     20          0             Airline name

CURRCODE        S_CURRCODE    CUKY     5             0             Local currency of airline

URL                     S_CARRURL         CHAR     255        0             Airline URL

 
SE11’den SCARR tablosundan yardım alabilirsiniz.

Data element girişleri için Add Multiple Elements seçilir


Data element’lerimizi girelim.


Her obje eklenmesi sonrası Aktivite  delim.


4-Decision Table oluşturalım.






Decision Table da input ve output parametrelerimizi tanımlayacağız.

INPUT:


CARR_ID ‘yi INPUT parametresi olarak tanımlıyoruz.



OUTPUT-Results Colums için :

CARRNAME,CARRURL,CURRCODE parametrelerini seçiyoruz


Decision Table son hali:


Her obje eklenmesi sonrası Aktive ediyoruz.

5-Decision Table sonrası Airline bilgilerini giriyoruz.



Decision Table’mızı kaydet ve aktive edilim.

 

6-Decision Table’mızı simulation  


yapalım.



Decision Table’mız sonuç setini dönmekte.

7-Function oluşturalım.




Mode kısmını Function mode yapalım.Expression kısmını Decision Table olarak verelim.

Context değerini CARR_ID ve Result Data setimize Result dataset’imizi verip functionımızı aktive edip simulation edelim.


8-ABAP ile BRF+ kuralımızı çağırmak için Create code template tıklayıp abap code genarate edelim.Veya FDT_TEMPLATE_FUNCTION_PROCESS programı ile ilgili function bulup abap kodu generate edebilinir.




la_EL_S_CARR_ID = [INSERT CONTEXT VALUE HERE OR DELETE THE LINE]. Bu kısma CARRID vererek BRF+ dan gelen değerleri kullanabilirsiniz.

1 Kasım 2022 Salı

WinSCP ile FTP,SFTP,FTPS dosya gönderimi

 Bazı durumlarda FTP serverlar ile SAP sistemi arasında direk bağlantı kuramayabiliriz.Birçok nedeni olabilir.SAP sistemi dışına aldığınız dosyaları WinSCP programı yardımı ile istenilen FTP adreslerine gönderebilirsiniz.

1-sync.bat dosyası oluşturulur.Dosya yolları değiştirilir.

winscp.com /script=winscpscript.txt
move *.csv C:\Users\Abit\AppData\Local\Programs\WinSCP\Arsiv\

2-winscpscript.txt dosyası oluşturulur.FTPs adresi,kullanıcı bilgileri değiştirilir.

 

option batch abort

option confirm off

open sftp://ftpuser:123456@192.168.1.40/

put *.csv  /home/ftpuser/test/

exit

3-Aşağıdaki gibi bir görüntü oluşması sağlanır.



4-sync.bat dosyası ister job ister manuel çalıştırılarak istenilen dosya tiplerinin akarımı yapılabilir. 

SAPBC_DATA_GENERATOR Flight Data Model

 SAPBC_DATA_GENERATOR programı ile Flight Data Model için kayıt oluşturabilirsiniz.Önceden oluşturulmuş ise eski kayıtları silebilir yeni tarihli uçuş bilgileri oluşturabilirsiniz.

BAPI_FLBOOKING_CREATEFROMDATA bapi'si ile yeni uçuş rezervasyonu yaratabilirsiniz.




29 Ekim 2022 Cumartesi

SSSLERR_SERVER_CERT_MISMATCH hatası:

 

    SAP sisteminiz ile SAP Cloud Integration birbirine bağladınız.SLL sertifikalarınız,root sertifikalarınız,kullanıcı ad ve şifre bilgilerinizi tanımladınız.SM59 destination tanımı sonrası “SSL handshake with” “SSSLERR_SERVER_CERT_MISMATCH (-30)#Servercertificate does not match supplied TargetHostname##SapSSLSessionStartNB()==SSSLERR_SE” hatası alıyorsanız RZ11 den

icm/HTTPS/client_sni_enabled parametresini TRUE duruma getirip hatayı düzeltebilirsiniz.

Hata mesajı:




RZ11 Mevcut parametre değeri
 

Yeni parametre değeri TRUE


SM59 connection testiniz başarılı olacaktır. RZ11 de kalıcı olması için BASIS ekibi ile iletişime geçebilirsiniz.





12 Ekim 2022 Çarşamba

SOAPUI Yardımı ile ABAP HTTP SOAP request

 

    SAP sistemi ile yeni bir web service entegresine başladınız.Kullanıcı bilgileri ile servisi SOAPUI’dan test ettiniz.Herşey çok güzel.Sıra SAP sistemine geldi.SAOPUI test ekranınızdaki Raw Tabındaki request header bilgilerini alarak abap http request header alanlarını doldurarak servise erişim yapabilirsiniz.

Soapui request header:



POST https://test.svc HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: text/xml;charset=UTF-8

SOAPAction: "http://tempuri.org/test/testGonder"

Authorization: Basic ASD3KDKEIEI

Content-Length: 1717

Host: test.com.tr

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

Örnek kullanım:

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Accept-Encoding'
    
value 'gzip,deflate'.

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Content-Type'
    
value 'text/xml; charset=utf-8'.
 

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Content-Length'
    
value gv_txlen.

 

Örnek abap kodu:

Concatenate kısmını SOAPUI request xml’ini kopyalarak düzenleyebilirsiniz.

DATAgv_ws_string    TYPE string.
DATAgv_rlength      TYPE i,
      gv_txlen        
TYPE string.
DATAlv_url          TYPE string.
DATAgv_http_client  TYPE REF TO if_http_client,
      gv_xml_document 
TYPE REF TO cl_xml_document.
DATAgv_ws_string1   TYPE string.
DATAxml_input       TYPE xstring.

DATAxml_table       LIKE TABLE OF smum_xmltb WITH HEADER LINE,
      
return          LIKE TABLE OF bapiret2.

CONCATENATE


INTO gv_ws_string .

gv_rlength 
STRLENgv_ws_string ) .
MOVEgv_rlength TO gv_txlen.

lv_url 
'https://test.com /Service.svc'.

CALL METHOD cl_http_client=>create_by_url
  
EXPORTING
    url                
lv_url 
  
IMPORTING
    
client             gv_http_client
  
EXCEPTIONS
    argument_not_found 
1
    plugin_not_active  
2
    internal_error     
3
    
OTHERS             4.
IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'POST'
    
value https://test.com /Service.svc' HTTP/1.1'.

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'~request_method'
    
value 'POST'.

 

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Accept-Encoding'
    
value 'gzip,deflate'.

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Content-Type'
    
value 'text/xml; charset=utf-8'.
 

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Content-Length'
    
value gv_txlen.

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Authorization'
    
value 'Basic saopui authoriztion token'.

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'SOAPAction'
    
value 'http://tempuri.org/METHOD AD'.


CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Host'
    
value 'https://test.com'.

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'Connection'
    
value 'Keep-Alive'.

CALL METHOD gv_http_client->request->set_header_field
  
EXPORTING
    name  
'User-Agent'
    
value 'Apache-HttpClient/4.1.1 (java 1.5)'.

CALL METHOD gv_http_client->request->set_cdata
  
EXPORTING
    
data   gv_ws_string
    offset 
0
    length 
gv_rlength.


CALL METHOD gv_http_client->send
  
EXCEPTIONS
    http_communication_failure 
1
    http_invalid_state         
2.

CALL METHOD gv_http_client->receive
  
EXCEPTIONS
    http_communication_failure 
1
    http_invalid_state         
2
    http_processing_failed     
3.

gv_ws_string1 
gv_http_client->response->get_cdata( ).
 

CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
  
EXPORTING
    
text     gv_ws_string1
    
encoding '4103'                                  
  
IMPORTING
    
buffer   xml_input
  
EXCEPTIONS
    failed   
1
    
OTHERS   2.

CALL FUNCTION 'SMUM_XML_PARSE'
  
EXPORTING
    xml_input 
xml_input
  
TABLES
    xml_table 
xml_table[]
    
return    return.




7 Ekim 2022 Cuma

SAP STRUST SSL hatası - SSSLERR_PEER_CERT_UNTRUSTED

1.SE38 işlem kodu ile RSWF_TEST_HTTP programı yardımı ile servis kontrolü yapılır.

SSL sertifica hatası alınır

SSSLERR_PEER_CERT_UNTRUSTED

                        

2-SMICM işlem kodu ile kontrol edilir.

    


3-Strust işlem kodu ile sertifica yüklenmesi.Servis url’den herhangi bir browser yardımı ile SSL sertifica’sını export edip,SAP sistemine import etmek gerekmektedir. SSL Client (Standart) seçimi yapılır.

4-Tekrar servisi RSWF_TEST_HTTP ile kontrol edelim.SSL sertifica’sı yüklenmiş durumda. Artık ister proxy class,ister http request ile servise erişim sağlayabilirsiniz.



28 Eylül 2022 Çarşamba

SAP Abap ADT Gateway error log

 SAP Abap ADT ile bir odata servisi geliştirdiniz.Odata servisinin aldığı hataları Feed Reader tabından görebilirsiniz.



SAP BTP table adjustment

 SAP BTP ile eclipse'de bir tablo tanımladınız.Tablonuza kayıt eklediniz.Daha sonra tablonuza yeni alan eklediniz veya datatype tipini,uzunluğunu değiştirdiniz,active etmeniz için CTRL+1 ile adjustment yöntemlerini yaparak tablonuzu aktif duruma getirebilirsiniz.