Ukwazisa i-SAP GUI kwi-browser

Ndiqale ndabhala eli nqaku kweyam Π±Π»ΠΎΠ³, ukuze ungakhange ukhangele kwaye ukhumbule kwakhona kamva, kodwa ekubeni kungekho mntu ufunda iblogi, ndandifuna ukwabelana ngolu lwazi kunye nawo wonke umntu, ukuba kunokwenzeka ukuba umntu afumane luncedo.

Ngethuba usebenza kwimbono yenkonzo yokusetha kwakhona iphasiwedi kwiinkqubo ze-SAP R / 3, kwavela umbuzo - njani ukuqalisa i-SAP GUI kunye neeparitha eziyimfuneko kwisiphequluli? Ekubeni le ngcamango ithetha ukusetyenziswa kwenkonzo yewebhu, kuqala ukuphendula kwisicelo se-SEAP esivela kwi-SAP GUI kunye nokuthumela ileta enekhonkco kwiphepha lewebhu kunye neskripthi sokusetha kwakhona igama eligqithisiweyo ukuya kweyokuqala, kwaye emva koko ubonise kumsebenzisi. Umyalezo omalunga nokusetwa kwakhona kwephasiwedi okuphumeleleyo kwaye ubonisa eligama lokugqitha lokuqala , ngoko ke ndingathanda eli phepha libe nekhonkco lokumisela iSAP GUI. Ngaphezu koko, eli khonkco kufuneka livule inkqubo efunwayo, kwaye, ngokukhethekayo, kunye neendawo zokungena kunye negama lokugqitha ezizaliswe ngaxeshanye: umsebenzisi kuya kufuneka agcwalise igama eligqithisiweyo kabini.

Ukuqaliswa kwe-SAP Logon kwakungenomdla kwinjongo yethu, kwaye xa usebenzisa i-sapgui.exe kwakungenakwenzeka ukucacisa umxhasi kunye negama lomsebenzisi, kodwa kwakunokwenzeka ukuqalisa inkqubo engachazwanga kwi-SAP Logon. Ngakolunye uhlangothi, ukuqaliswa kwe-SAP GUI kunye neeparamitha zomncedisi ongekho mthethweni kwakungafanelekanga ngokukodwa: ukuba sixazulula ingxaki yokusetha kwakhona igama eligqithisiweyo lomsebenzisi, ngoko kunokwenzeka ukuba sele enomgca ofunekayo kwi-SAP Logon, kunye nezicwangciso azidingayo, kwaye apho. akukho mfuneko yokuba adibanise neyakhe. Kodwa iimfuno ezichaziweyo zidibene ne-SAP GUI ye-Shortcut technology kunye neprogram ye-sapshcut.exe ngokwayo, eyenza kube lula ukuqalisa i-SAP GUI usebenzisa "indlela emfutshane" ethile.

Ukusonjululwa kwengxaki ngentloko: kuphehlelela i-sapshcut.exe ngokuthe ngqo kwisikhangeli usebenzisa into ye-ActiveX:

function openSAPGui(sid, client, user, password) {
var shell = new ActiveXObject("WScript.Shell");
shell.run('sapshcut.exe -system="'+sid+'" -client='+client+' -user="'+user+'" -pw="'+password+'" -language=RU');
}

Isisombululo sibi: okokuqala, sisebenza kuphela kwi-Internet Explorer, okwesibini, ifuna izicwangciso ezifanelekileyo zokhuseleko kwisiphequluli, apho kwintlangano inokuvinjelwa kwinqanaba lesizinda, kwaye nokuba kuvunyelwe, isikhangeli sibonisa iwindow eyoyikisayo. isilumkiso kumsebenzisi:

Ukwazisa i-SAP GUI kwi-browser

Ndifumene isisombululo #2 kwi-Intanethi: ukwenza eyakho iprotocol yewebhu. Ivumela ukuba siqalise usetyenziso esiludingayo sisebenzisa ikhonkco esibonisa iprotocol, thina ngokwethu esibhalisa kwiWindows kwirejista kwicandelo leHKEY_CLASSES_ROOT. Ekubeni i-SAP GUI Shortcut inecandelwana layo kweli candelo, unokongeza iparameter yeProtocol ye-URL enexabiso elingenanto apho:

Ukwazisa i-SAP GUI kwi-browser

Le protocol iqala sapgui.exe ngeparameter /SHORTCUT, yile nto kanye siyifunayo:

Ukwazisa i-SAP GUI kwi-browser

Kulungile, okanye ukuba sifuna ukwenza iprotocol engenamkhethe ngokupheleleyo (umzekelo, i-sapshcut), emva koko ungayibhalisa usebenzisa ifayile yereg elandelayo:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTsapshcut]
@="sapshcut Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOTsapshcutDefaultIcon]
@="sapshcut.exe"
[HKEY_CLASSES_ROOTsapshcutshell]
[HKEY_CLASSES_ROOTsapshcutshellopen]
[HKEY_CLASSES_ROOTsapshcutshellopencommand]
@="sapshcut.exe "%1""

Ngoku, ukuba senza ikhonkco kwiphepha lewebhu elibonisa iprotocol Ifayile yeSapgui.Indlela emfutshane Ngendlela efanayo:

<a href='Sapgui.Shortcut.File: -system=SID -client=200'>SID200</a>

Kufuneka sibone ifestile enje:

Ukwazisa i-SAP GUI kwi-browser

Kwaye yonke into ibonakala ilungile, kodwa xa ucofa iqhosha elithi "Vumela" sibona:

Ukwazisa i-SAP GUI kwi-browser

Owu, isikhangeli sijike isiphekepheke saba yi-%20. Ewe, abanye abalinganiswa baya kufakwa kwikhowudi yabo yamanani kunye nesimboli sepesenti. Kwaye eyona nto ingathandekiyo kukuba akukho nto inokwenziwa apha kwinqanaba lomkhangeli (yonke into elapha yenziwa ngokuhambelana nomgangatho) - umkhangeli zincwadi akayithandi abalinganiswa abanjalo, kwaye itoliki yomyalelo weWindows ayisebenzi kunye nemilinganiselo ekhowudiweyo. Kwaye enye thabatha - umtya wonke ugqithiswe njenge parameter, kuquka igama lomthetho kunye nekholoni (sapgui.shortcut.file:). Ngaphezu koko, nangona kunjalo sapshcut.exe ingalahla yonke into engeyiyo iparameter kuyo (iqala ngesimboli "-", emva koko igama, "=" kunye nexabiso), i.e. umgca onje"sapgui.shortcut.file: -system=SID"isazosebenza, emva koko ngaphandle kwendawo"sapgui.shortcut.file:-system=SID"ayisasebenzi.

Kuyavela ukuba, ngokomgaqo, zimbini iinketho zokusebenzisa iprotocol ye-URI:

  1. Ukusebenzisa ngaphandle kweeparamitha: Senza iqela elipheleleyo leeprothokholi kuzo zonke iinkqubo zethu zodidi SIDMANT, uhlobo UAA200, BBB200 kwaye nangokunjalo. Ukuba ufuna nje ukuqala inkqubo efunekayo, ke ukhetho luyasebenza, kodwa kwimeko yethu ayifanelekanga, kuba ubuncinane ungathanda ukudlulisa igama lomsebenzisi, kodwa oku akunakwenziwa ngale ndlela.
  2. Ukusebenzisa inkqubo yokusonga ukufowuna sapshcut.exe okanye sapgui.exe. Ingundoqo yale nkqubo ilula - kufuneka ithathe umtya umkhangeli ohambisa kuyo ngeprotocol yewebhu kwaye uyiguqule ibe ngumboniso ofunyanwa yiWindows, okt. ijika zonke iikhowudi zabalinganiswa (mhlawumbi nokucalula umtya ngokweparameters) kwaye sele ifowunela i-SAP GUI ngomyalelo ochanekileyo oqinisekisiweyo. Kwimeko yethu, ayifanelekanga ngokupheleleyo (yiyo loo nto ndingazange ndiyibhale), kuba akwanelanga ukuba songeze iprotocol kuzo zonke iiPC zabasebenzisi (ngaphakathi kwesizinda oku kusalungile, nangona kungcono ukuba luphephe olu qheliselo), kodwa apha siza kufuna indawo engakumbi inkqubo kwiPC, kwaye siqinisekise rhoqo ukuba ayisuki xa isoftware iphinda ifakwe kwiPC.

Ezo. Sikwalahla olu khetho njengento engafanelekanga kuthi.

Ngeli xesha ndandisele ndiqala ukucinga ukuba kuya kufuneka ndithi ndlela-ntle kumbono wokuqalisa i-SAP GUI kunye neeparitha eziyimfuneko ukusuka kwisikhangeli, kodwa emva koko kwavela umbono kum wokuba kwi-SAP Logon unokwenza indlela emfutshane kwaye yikhuphele kwidesktop yakho. Ndasebenzisa le ndlela kanye, kodwa ngaphambi koko andizange ndijonge ngokuthe ngqo ifayile yendlela emfutshane. Kwaye kwavela ukuba le ndlela imfutshane yifayile yokubhaliweyo eqhelekileyo enolwandiso .sap. Kwaye ukuba uyayiqhuba kwiWindows, i-SAP GUI iya kuqalisa ngeeparamitha ezichazwe kule fayile. "Ibhingo!"

Ifomathi yale fayile imalunga noku kulandelayo (kusenokubakho intengiselwano eyasungulwa ekuqaleni, kodwa ndiyishiyile):

[System]
Name=SID
Client=200
[User]
Name=
Language=RU
Password=
[Function]
Title=
[Configuration]
GuiSize=Maximized
[Options]
Reuse=0

Kubonakala ngathi yonke into efunekayo: isazisi senkqubo, umxhasi, igama lomsebenzisi kunye negama lokugqitha. Kwaye neeparamitha ezongezelelweyo: isihloko -isihloko sefestile, GuiSize - ubungakanani befestile esebenzayo (isikrini esigcweleyo okanye hayi) kunye Sebenzisa kwakhona β€” nokuba kuyimfuneko ukuvula ifestile entsha okanye sebenzisa esele ivuliwe ngenkqubo efanayo. Kodwa kwavela i-nuance ngokukhawuleza - kwavela ukuba i-password kwi-SAP Logon ayikwazanga ukusetwa, umgca uvaliwe. Kwavela ukuba oku kwenziwa ngenxa yezizathu zokhuseleko: igcina zonke iindlela ezimfutshane ezenziwe kwi-SAP Logon kwifayile sapshortcut.ini (Kufuphi saplogon.ini kwiprofayile yomsebenzisi weWindows) kwaye apho, nangona zifihliwe, azikhutshelwanga kakhulu kwaye, ukuba ziyafunwa, zinokukhutshwa. Kodwa unokusombulula oku ngokutshintsha ixabiso leparameter enye kubhaliso (ixabiso elingagqibekanga li 0):

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity]
"EnablePassword"="1"

Oku kuvula indawo yegama Lokugqithisa longeno kwifomu yokudala indlela emfutshane kwi Logon yeSAP:

Ukwazisa i-SAP GUI kwi-browser

Kwaye xa ufaka igama eligqithisiweyo kule ndawo, liya kufakwa kumgca ohambelanayo
sapshortcut.ini, kodwa xa utsala indlela emfutshane kwidesktop, ayiveli apho - kodwa ungayongeza apho ngesandla. I-password i-encrypted, kwi-111111 iya kuba ngolu hlobo lulandelayo: PW_49B02219D1F6, ye-222222 - PW_4AB3211AD2F5. Kodwa sinomdla ngakumbi kwinto yokuba le phasiwedi ibhalwe ngendlela enye, ngaphandle kwePC ethile, kwaye ukuba siphinda siseta igama eligqithisiweyo kweyokuqala, sinokusebenzisa ixabiso elaziwa ngaphambili kule ndawo. Ewe, ukuba sifuna ukusebenzisa igama eliyimfihlo elenziwe ngokungenamkhethe, kuya kufuneka siqonde i-algorithm yale cipher. Kodwa xa sijonga imizekelo enikiweyo, oku akuyi kuba nzima ukwenza. Ngendlela, kwi-SAP GUI 7.40 le ntsimi yanyamalala ngokupheleleyo kwifom, kodwa iyamkela ngokuchanekileyo ifayile kunye negama lokugqitha eligcwalisiweyo.

Oko kukuthi, kuvela ukuba kwisikhangeli kufuneka ucofe ikhonkco kwifayile enesandiso .sap kunye nefomathi efunwayo - kwaye iya kunika ukuyivula njengefayile efana ne-SAP GUI Shortcut (ngokwemvelo kwiPC ngeSAP GUI efakiweyo) kwaye iya kuvula i SAP GUI ifestile kunye neeparamitha ezikhankanyiweyo (ukuba i-SID kunye nomxhasi ngababini bakuluhlu lwe-SAP Logon kule PC).

Kodwa, kuyacaca ukuba akukho mntu uya kudala iifayile kwangaphambili kwaye azigcine kwindawo - kufuneka ziveliswe ngokusekelwe kwiiparameters eziyimfuneko. Umzekelo, ungenza iskripthi se-PHP ukuvelisa iindlela ezimfutshane (sapshcut.php):

<?php
$queries = array();
parse_str($_SERVER['QUERY_STRING'], $queries);
$Title = $queries['Title'];
$Size = $queries['Size'];
$SID = $queries['SID'];
$Client = $queries['Client'];
if($Client == '') { $Client=200; };
$Lang = $queries['Language'];
if($Lang=='') { $Lang = 'RU'; };
$User = $queries['Username'];
if($User<>'') { $Password = $queries['Password']; };
$filename = $SID.$Client.'.sap';
header('Content-disposition: attachment; filename='.$filename);
header('Content-type: application/sap');
echo "[System]rn";
echo "Name=".$SID."rn";
echo "Client=".$Client."rn";
echo "[User]rn";
echo "Name=".$Username."rn";
echo "Language=".$Lang."rn";
if($Password<>'') echo "Password=".$Password."rn";
echo "[Function]rn";
if($Title<>'') {echo "Title=".$Title."rn";} else {echo "Title=Π’Ρ…ΠΎΠ΄ Π² систСмуrn";};
echo "[Configuration]rn";
if($Size=='max') { echo "GuiSize=Maximizedrn"; };
echo "[Options]rn";
echo "Reuse=0rn";
?>

Ukuba awukhankanyi igama lomsebenzisi kunye negama lokugqitha, uya kufumana le festile ilandelayo icela ukungena kunye negama lokugqitha:

Ukwazisa i-SAP GUI kwi-browser

Ukuba ugqithisa igama lokungena kuphela, indawo yokungena izakuzaliswa kwaye indawo yegama lokugqitha iya kuba ayinanto. Ukuba sinika umsebenzisi zombini igama lokungena kunye negama lokugqitha, kodwa umsebenzisi kwi-PC uneqhosha le-EnablePassword kwirejistri kwicandelo le- [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] ebekwe ku-0, ngoko sifumana into efanayo. Kwaye kuphela ukuba eli qhosha lisetelwe ku-1 kwaye sidlula zombini igama kunye negama lokugqitha lokuqala, inkqubo iya kukukhuthaza ngokukhawuleza ukuba ufake igama eligqithisiweyo elitsha kabini. Nantso into ebesiyidinga.

Ngenxa yoko, sinale seti ilandelayo yokhetho olujongwayo njengomzekeliso wako konke oku kungasentla:

<html>
<head>
<script>
function openSAPGui(sid, client, user, password) {
var shell = new ActiveXObject("WScript.Shell");
shell.run('sapshcut.exe -system="'+sid+'" -client='+client+' -user="'+user+'" -pw="'+password+'" -language=RU');
}
</script>
</head>
<body>
<a href='' onclick="javascript:openSAPGui('SID', '200', 'test', '');"/>Example 1: Execute sapshcut.exe (ActiveX)<br>
<a href='Sapgui.Shortcut.File: -system=SID -client=200'>Example 2: Open sapshcut.exe (URI)</a><br>
<a href='sapshcut.php?SID=SID&Client=200&User=test'>Example 3: Open file .sap (SAP GUI Shortcut)</a><br>
</body>
</html>

Ukhetho lokugqibela lundifanele. Kodwa endaweni yokuvelisa ii-shortcuts ze-SAP, ungasebenzisa kwakhona, umzekelo, ukuvelisa iifayile ze-CMD, ezithi, xa zivulwa kwi-browser, ziya kuvula kwakhona iwindow ye-SAP GUI kuwe. Ngezantsi ngumzekelo (sapgucmd.php) qalisa ngokuthe ngqo i-SAP GUI ngomtya woqhagamshelwano olupheleleyo, ngaphandle kwesidingo sokuba ne-SAP Logon iqwalaselwe:

<?php
$queries = array();
parse_str($_SERVER['QUERY_STRING'], $queries);
$Title = $queries['Title'];
$ROUTER = $queries['ROUTER'];
$ROUTERPORT = $queries['ROUTERPORT'];
$HOST = $queries['HOST'];
$PORT = $queries['PORT'];
$MESS = $queries['MESS'];
$LG = $queries['LG'];
$filename = 'SAPGUI_';
if($MESS<>'') $filename = $filename.$MESS;
if($HOST<>'') $filename = $filename.$HOST;
if($PORT<>'') $filename = $filename.'_'.$PORT;
$filename = $filename.'.cmd';
header('Content-disposition: attachment; filename='.$filename);
header('Content-type: application/cmd');
echo "@echo offrn";
echo "chcp 1251rn";
echo "echo Π’Ρ…ΠΎΠ΄ Π² ".$Title."rn";
echo "set SAP_CODEPAGE=1504rn";
echo 'if exist "%ProgramFiles(x86)%SAPFrontEndSapGuisapgui.exe" set gui=%ProgramFiles(x86)%SAPFrontEndSapGuisapgui.exe'."rn";
echo 'if exist "%ProgramFiles%SAPFrontEndSapGuisapgui.exe" set gui=%ProgramFiles%SAPFrontEndSapGuisapgui.exe'."rn";
echo "set logon=";
if($ROUTER<>'') echo "/H/".$ROUTER;
if($ROUTERPORT<>'') echo "/S/".$ROUTERPORT;
if($MESS<>'') echo "/M/".$MESS;
if($HOST<>'') echo "/H/".$HOST;
if($PORT<>'') echo "/S/".$PORT;
if($LG<>'') echo "/G/".$LG;
echo "rn";
echo '"%gui%" %logon%'."rn";
?>

umthombo: www.habr.com

Yongeza izimvo