Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Sap Bapi & Rfc Kütüphaneleri
#1
Merhabalar Hayırlı Akşamlar,

Delphi ile Sap Bapi & Rfc entegrasyonları yapan 
bu konuda tecrübesi olan arkadaşımız varmı bilgi paylaşabilecek.
Sorsaydı Bilirdi Sormuyor ki Bilsin.
Bilseydi Sorardı Bilmiyor ki Sorsun. 
Cevapla
#2
Daha önce birkaç firmaya replikasyon aracı yazmıştım. Sap kurulumu yapılmış pc de program files içerisinde wdtfuncs.ocx olarak kendi activex i mevcuttur.
Bunu delphide import edip kullanabilirsiniz. Table yapıları string grid gibi çalışır.
Örnek bir çağrım ;

procedure Kontrol;
var
 Funct: variant;
begin
 Funct := FSAPFunctions.Add('Kontrol_Function');
 try
   Funct.Exports('AnyValue').Value := 'CHECKED';

   if not Funct.Call then
     raise Exception.CreateFmt('%s: %s', [Funct.Name, Funct.Exception]);
 finally
   FSAPFunctions.Remove(1);
 end;
end;
Ayakkabıyı sefaletten
Çok sonraları tanıdım
Öyle ufuklarda mı olurmuş Allah'ım
Giyer giyer koşardım
Toprağın dostluğundan
Oyuncaklar yaptım çamurdan
Tenimin rengini aldım topraktan
Sen bakma esmerliğim sonradan...





Cevapla
#3
(03-09-2020, Saat: 18:36)QuAdR Adlı Kullanıcıdan Alıntı: Daha önce birkaç firmaya replikasyon aracı yazmıştım. Sap kurulumu yapılmış pc de program files içerisinde wdtfuncs.ocx olarak kendi activex i mevcuttur.
Bunu delphide import edip kullanabilirsiniz. Table yapıları string grid gibi çalışır.
Örnek bir çağrım ;

procedure Kontrol;
var
 Funct: variant;
begin
 Funct := FSAPFunctions.Add('Kontrol_Function');
 try
   Funct.Exports('AnyValue').Value := 'CHECKED';

   if not Funct.Call then
     raise Exception.CreateFmt('%s: %s', [Funct.Name, Funct.Exception]);
 finally
   FSAPFunctions.Remove(1);
 end;
end;

Teşekkür ederim yanıtınız için.

Ben SAPLogonControl nesnesi ile connect olamadım bir türlü.
Henüz nesne create edilir edilmez patlıyor.
sistemimde sap kurulu ve kullanıyorum acaba birşeyler eksik register etmekmi  veya aktif etmek mi gerekiyor.
daha ilk satırda nesneyi oluşturuken patlıyor belirgin bir mesaj da vermiyor. 

procedure TForm1.SAPLogonControl1Click(Sender: TObject);
var   Connection :variant;
begin

 Connection:= SAPLogOnControl1.NewConnection;

 if Connection.LogOn(0,false) = true then
 begin
   showmessage('Logged On.');
 end
 else
 begin
   ShowMessage('Erron on LogOn.');
 end;

end;
Sorsaydı Bilirdi Sormuyor ki Bilsin.
Bilseydi Sorardı Bilmiyor ki Sorsun. 
Cevapla
#4
(03-09-2020, Saat: 20:43)bydelphi Adlı Kullanıcıdan Alıntı:
(03-09-2020, Saat: 18:36)QuAdR Adlı Kullanıcıdan Alıntı: Daha önce birkaç firmaya replikasyon aracı yazmıştım. Sap kurulumu yapılmış pc de program files içerisinde wdtfuncs.ocx olarak kendi activex i mevcuttur.
Bunu delphide import edip kullanabilirsiniz. Table yapıları string grid gibi çalışır.
Örnek bir çağrım ;

procedure Kontrol;
var
 Funct: variant;
begin
 Funct := FSAPFunctions.Add('Kontrol_Function');
 try
   Funct.Exports('AnyValue').Value := 'CHECKED';

   if not Funct.Call then
     raise Exception.CreateFmt('%s: %s', [Funct.Name, Funct.Exception]);
 finally
   FSAPFunctions.Remove(1);
 end;
end;

Teşekkür ederim yanıtınız için.

Ben SAPLogonControl nesnesi ile connect olamadım bir türlü.
Henüz nesne create edilir edilmez patlıyor.
sistemimde sap kurulu ve kullanıyorum acaba birşeyler eksik register etmekmi  veya aktif etmek mi gerekiyor.
daha ilk satırda nesneyi oluşturuken patlıyor belirgin bir mesaj da vermiyor. 

procedure TForm1.SAPLogonControl1Click(Sender: TObject);
var   Connection :variant;
begin

 Connection:= SAPLogOnControl1.NewConnection;

 if Connection.LogOn(0,false) = true then
 begin
   showmessage('Logged On.');
 end
 else
 begin
   ShowMessage('Erron on LogOn.');
 end;

end;


Merhaba,
Bilgisayarımda SAP Gui kurulu olmadığı için ilgili ocx adını hatırlayamadım fakat şöyle ilerleyebilirsiniz.

*SAP hangi sürümü kullanıyorsunuz?

Genel cevap olarak delphi tarafında;
Component => New Component tarafında SAP nesnelerinden SAPFunctionsOCX_TLB, SAPLogonCtrl_TLB karşılık gelenleri import edin.

    
SAPLogonControl1 := createoleobject('SAP.LogonControl.1');
SAPFunctions1 := TSAPFunctions.Create(Application);

Yukarıdaki işlemlerin altına SAP GUI giriş bilgileriniz yazıp bağlantı sağlamanız gerekiyor en son ise ilgili fonksiyonu çağırabilirsiniz.

İyi çalışmalar.
Cevapla
#5
(03-09-2020, Saat: 20:57)pro_imaj Adlı Kullanıcıdan Alıntı:
(03-09-2020, Saat: 20:43)bydelphi Adlı Kullanıcıdan Alıntı: Teşekkür ederim yanıtınız için.

Ben SAPLogonControl nesnesi ile connect olamadım bir türlü.
Henüz nesne create edilir edilmez patlıyor.
sistemimde sap kurulu ve kullanıyorum acaba birşeyler eksik register etmekmi  veya aktif etmek mi gerekiyor.
daha ilk satırda nesneyi oluşturuken patlıyor belirgin bir mesaj da vermiyor. 

procedure TForm1.SAPLogonControl1Click(Sender: TObject);
var   Connection :variant;
begin

 Connection:= SAPLogOnControl1.NewConnection;

 if Connection.LogOn(0,false) = true then
 begin
   showmessage('Logged On.');
 end
 else
 begin
   ShowMessage('Erron on LogOn.');
 end;

end;


Merhaba,
Bilgisayarımda SAP Gui kurulu olmadığı için ilgili ocx adını hatırlayamadım fakat şöyle ilerleyebilirsiniz.

*SAP hangi sürümü kullanıyorsunuz?

Genel cevap olarak delphi tarafında;
Component => New Component tarafında SAP nesnelerinden SAPFunctionsOCX_TLB, SAPLogonCtrl_TLB karşılık gelenleri import edin.

    
SAPLogonControl1 := createoleobject('SAP.LogonControl.1');
SAPFunctions1 := TSAPFunctions.Create(Application);

Yukarıdaki işlemlerin altına SAP GUI giriş bilgileriniz yazıp bağlantı sağlamanız gerekiyor en son ise ilgili fonksiyonu çağırabilirsiniz.

İyi çalışmalar.

Sap versiyonumuz 7.53.
Örnek için teşekkürler bi deneyelim.
Sorsaydı Bilirdi Sormuyor ki Bilsin.
Bilseydi Sorardı Bilmiyor ki Sorsun. 
Cevapla
#6
Logon ve logoff metodları. Activex için yol aşağıdaki gibidir.



// ************************************************************************  //
// Type Lib: C:\PROGRAM FILES\SAP\FRONTEND\CONTROLS\WDTFUNCS.OCX (1)
// LIBID: {5B076C00-2F26-11CF-9AE5-0800096E19F4}
// LCID: 0
// Helpfile:
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\SYSTEM\STDOLE2.TLB)
// (2) v4.0 StdVCL, (C:\WINDOWS\SYSTEM\stdvcl40.dll)
// Errors:
// Hint: TypeInfo 'Function' changed to 'Function_'
// Hint: TypeInfo 'Exports' changed to 'Exports_'
// Hint: Member 'Type' of 'IStructure' changed to 'Type_'
// Hint: Member 'Function' of 'IStructure' changed to 'Function_'
// Hint: Member 'Exports' of 'IFunction' changed to 'Exports_'
// Hint: Member 'Function' of 'IParameter' changed to 'Function_'
// Hint: Member 'Type' of 'IParameter' changed to 'Type_'
// ************************************************************************ //

//Sap genel ayarları

//SAPServer=127.0.0.1
//SAPClient=400
//SAPLanguage=TR
//SAPUser=Username
//SAPPassword=Password
//SAPSN=2
//SAPLogLevel=9



    FSAPLogonControl: TSAPLogonControl;
    FSAPFunctions: TSAPFunctions;
    FConnection: variant;


procedure TfrmMain.LogonToSAP;
begin
 FConnection := FSAPLogonControl.NewConnection;
 FConnection.ApplicationServer := FSAPApplicationServer;
 FConnection.Language := FSAPLanguage;
 FConnection.SystemNumber := FSAPSystemNumber;
 FConnection.Client := FSAPClient;
 FConnection.User := FSAPUser;
 FConnection.Password := FSAPPassword;

 LogFmt('SAP bağlantısı kuruluyor...(Kullanıcı : %s - Server : %s)',
   [FSAPUser, FSAPApplicationServer]);

 if not FConnection.Logon(0, True) then
 begin
   Log('SAP bağlantı hatası');
   Abort;
 end
 else
 begin
   Log('Bağlantı kuruldu.');
 end;

 FSAPFunctions.LogLevel := FSAPLogLevel;
 FSAPFunctions.Connection := FConnection;
end;

procedure TfrmMain.LogoffFromSAP;
begin
 Log('SAP bağlantısı kesiliyor...');
 try
   FSAPFunctions.Connection := UnAssigned;
   FConnection.LogOff;
 finally
   FConnection := null;
 end;
end;
Ayakkabıyı sefaletten
Çok sonraları tanıdım
Öyle ufuklarda mı olurmuş Allah'ım
Giyer giyer koşardım
Toprağın dostluğundan
Oyuncaklar yaptım çamurdan
Tenimin rengini aldım topraktan
Sen bakma esmerliğim sonradan...





Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi