Ke hoʻomaka nei ʻo SAP GUI mai kahi polokalamu kele pūnaewele

Ua kākau mua wau i kēia ʻatikala ma kaʻu blog, i ʻole e ʻimi a hoʻomanaʻo hou ma hope, akā no ka mea ʻaʻohe mea heluhelu i ka blog, makemake wau e kaʻana like i kēia ʻike me nā mea a pau, inā ʻike kekahi he pono ia.

ʻOiai e hana ana i ka manaʻo o kahi lawelawe hoʻonohonoho ʻōlelo huna ma nā ʻōnaehana SAP R/3, ua kū mai kahi nīnau - pehea e hoʻomaka ai i ka SAP GUI me nā ʻāpana pono mai ka polokalamu kele? Ma muli o ka manaʻo o kēia manaʻo i ka hoʻohana ʻana i kahi lawelawe pūnaewele, pane mua i kahi noi SOAP mai ka SAP GUI a hoʻouna i kahi leka me kahi loulou i kahi ʻaoʻao pūnaewele me kahi palapala no ka hoʻonohonoho hou ʻana i ka ʻōlelo huna i ka mea mua, a laila hōʻike i ka mea hoʻohana. he memo e pili ana i ka hoʻoponopono hou ʻana i ka ʻōlelo huna a me ka hōʻike ʻana i kēia ʻōlelo huna mua loa, a laila makemake wau e loaʻa i kēia ʻaoʻao kahi loulou e hoʻomaka ai i ka SAP GUI. Eia kekahi, pono e wehe kēia loulou i ka ʻōnaehana i makemake ʻia, a, ʻoi aku ka maikaʻi, me ka hoʻopiha ʻana i nā kahua komo a me ka ʻōlelo huna: ʻo ka mea hoʻohana wale nō e hoʻopiha i ka ʻōlelo huna hua ʻelua.

ʻAʻole hoihoi ka hoʻolaha ʻana i ka SAP Logon no kā mākou kumu, a i ka wā e holo ana sapgui.exe ʻaʻole hiki ke kuhikuhi i ka mea kūʻai aku a me ka inoa mea hoʻohana, akā hiki ke hoʻomaka i kahi ʻōnaehana ʻaʻole i wehewehe ʻia ma SAP Logon. Ma ka ʻaoʻao ʻē aʻe, ʻaʻole i pili pono ka hoʻokuʻu ʻana i ka SAP GUI me nā ʻāpana kikowaena kikowaena: inā mākou e hoʻonā i ka pilikia o ka hoʻonohonoho hou ʻana i ka ʻōlelo huna a ka mea hoʻohana, a laila aia paha iā ia ka laina e pono ai ma SAP Logon, me nā hoʻonohonoho e pono ai, a ma laila. ʻaʻole pono e hoʻopilikia i kāna iho. Akā ua hoʻokō ʻia nā koi i ʻōlelo ʻia e ka ʻenehana SAP GUI Shortcut a me ka papahana sapshcut.exe ponoʻī, i hiki ai ke hoʻomaka i ka SAP GUI me ka hoʻohana ʻana i kahi "pōkole".

Hoʻoholo i ka pilikia ma ke poʻo: hoʻomaka pololei i ka sapshcut.exe mai ka polokalamu kele me ka hoʻohana ʻana i kahi mea 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');
}

He ʻino ka hopena: ʻo ka mea mua, hana wale ia ma Internet Explorer, ʻo ka lua, pono ia i nā hoʻonohonoho palekana kūpono i ka polokalamu kele pūnaewele, hiki ke pāpā ʻia i loko o kahi hui ma ka pae domain, a inā ʻae ʻia, hōʻike ka polokalamu i ka puka makani me kahi makaʻu. ʻōlelo aʻo i ka mea hoʻohana:

Ke hoʻomaka nei ʻo SAP GUI mai kahi polokalamu kele pūnaewele

Ua loaʻa iaʻu ka hopena #2 ma ka Pūnaewele: ka hana ʻana i kāu protocol pūnaewele ponoʻī. Hāʻawi iā mākou e hoʻomaka i ka noi e pono ai mākou me ka hoʻohana ʻana i kahi loulou e hōʻike ana i ka protocol, a mākou iho e hoʻopaʻa inoa ma Windows ma ka papa inoa ma ka ʻāpana HKEY_CLASSES_ROOT. No ka loaʻa ʻana o ka ʻāpana SAP GUI Shortcut i kēia ʻāpana, hiki iā ʻoe ke hoʻohui i ka URL Protocol string parameter me kahi waiwai ʻole ma laila:

Ke hoʻomaka nei ʻo SAP GUI mai kahi polokalamu kele pūnaewele

Hoʻomaka kēia protocol sapgui.exe me ka palena /SHORTCUT, ʻo ia ka mea e pono ai mākou:

Ke hoʻomaka nei ʻo SAP GUI mai kahi polokalamu kele pūnaewele

ʻAe, a inā makemake mākou e hana i kahi protocol arbitrary (no ka laʻana, sapshcut), a laila hiki iā ʻoe ke hoʻopaʻa inoa me ka hoʻohana ʻana i kēia faila reg:

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""

I kēia manawa, inā mākou e hana i kahi loulou ma kahi ʻaoʻao pūnaewele e hōʻike ana i ka protocol Sapgui.Shortcut.File Ma ke ʻano like:

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

Pono mākou e ʻike i kahi puka makani e like me kēia:

Ke hoʻomaka nei ʻo SAP GUI mai kahi polokalamu kele pūnaewele

A maikaʻi nā mea a pau, akā ke kaomi ʻoe i ka pihi "Allow" ʻike mākou:

Ke hoʻomaka nei ʻo SAP GUI mai kahi polokalamu kele pūnaewele

ʻAe, ua hoʻololi ka polokalamu kele pūnaewele i ka pae hakahaka i %20. ʻAe, e hoʻopili ʻia nā huaʻōlelo ʻē aʻe i kā lākou helu helu me ka hōʻailona pakeneka. A ʻo ka mea ʻoluʻolu loa ʻaʻole hiki ke hana ʻia ma ʻaneʻi ma ka pae polokalamu (ua hana ʻia nā mea āpau e like me ka maʻamau) - ʻaʻole makemake ka polokalamu kele pūnaewele i kēlā mau ʻano, a ʻaʻole hana ka mea unuhi ʻōlelo Windows me nā waiwai i hoʻopaʻa ʻia. A hoʻokahi mea liʻiliʻi - ua hoʻoholo ʻia ke kaula holoʻokoʻa ma ke ʻano he ʻāpana, me ka inoa protocol a me ke kolonā (sapgui.shortcut.file:). Eia kekahi, ʻoiai ka mea like sapshcut.exe hiki iā ia ke hoʻolei i nā mea āpau ʻaʻole ia he palena no ia (hoʻomaka me ka hōʻailona "-", a laila ka inoa, "=" a me ka waiwai), ʻo ia. laina like "sapgui.shortcut.file: -system=SID"e hana mau nō ia, a laila ʻaʻohe wahi"sapgui.shortcut.file:-system=SID"ʻaʻole hana hou.

ʻIke ʻia, ma ke kumu, ʻelua mau koho no ka hoʻohana ʻana i ka protocol URI:

  1. Ke hoʻohana nei me ka ʻole o nā ʻāpana: Hana mākou i kahi pūʻulu holoʻokoʻa o nā protocols no kā mākou ʻōnaehana āpau o ke ʻano SIDMANDT, like AAA200, BBB200 a laila. Inā pono ʻoe e hoʻomaka i ka ʻōnaehana i makemake ʻia, a laila hiki ke hoʻohana ʻia ke koho, akā i kā mākou hihia ʻaʻole kūpono ia, no ka mea ma ka liʻiliʻi e makemake ʻoe e hoʻololi i ka mea hoʻohana, akā ʻaʻole hiki ke hana i kēia ala.
  2. Ke hoʻohana nei i kahi polokalamu wrapper e kelepona sapshcut.exe ai ole ia, sapgui.exe. He mea maʻalahi ka manaʻo o kēia polokalamu - pono e lawe i ke kaula i hoʻouna ʻia e ka polokalamu kele pūnaewele ma o ka protocol pūnaewele a hoʻololi iā ia i ke ʻano i loaʻa iā Windows, i.e. e hoʻohuli i nā code a pau i nā huaʻōlelo (paha paha i ke kaula e like me nā ʻāpana) a ua kāhea aku iā SAP GUI me kahi kauoha pololei. I kā mākou hihia, ʻaʻole kūpono loa ia (ʻo ia ke kumu ʻaʻole wau i kākau iā ia), no ka mea ʻaʻole lawa iā mākou ke hoʻohui i ka protocol ma nā PC mea hoʻohana āpau (i loko o kahi kikowaena ua maikaʻi kēia, ʻoiai ʻoi aku ka maikaʻi e pale i kēia hana), akā ma ʻaneʻi e pono mākou e hoʻonoho hou i ka polokalamu ma ka PC, a e hōʻoia mau nō hoʻi ʻaʻole ia e hele i ka wā e hoʻokomo hou ʻia ka polokalamu ma ka PC.

ʻO kēlā mau mea. Hoʻolei mākou i kēia koho i kūpono ʻole iā mākou.

I kēia manawa ua hoʻomaka wau e noʻonoʻo pono wau e haʻi aku i ka manaʻo o ka hoʻokuʻu ʻana i ka SAP GUI me nā ʻāpana pono mai ka polokalamu kele pūnaewele, akā ua hiki mai ka manaʻo iaʻu e hiki iā ʻoe ke hana i kahi pōkole ma SAP Logon a kope ia i kāu papapihi. Ua hoʻohana au i kēia ʻano hana i hoʻokahi manawa, akā ma mua o kēlā ʻaʻole wau i nānā pono i ka faila pōkole. A ua ʻike ʻia he faila kikokikona maʻamau kēia pōkole me ka hoʻonui .sap. A inā ʻoe e holo ma Windows, e hoʻomaka ʻo SAP GUI me nā ʻāpana i kuhikuhi ʻia i kēia faila. "Bingo!"

ʻO ke ʻano o kēia faila e like me kēia (hiki ke hoʻomaka ʻia kahi kālepa i ka hoʻomaka ʻana, akā ua haʻalele wau):

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

ʻIke ʻia nā mea āpau e pono ai: kahi ʻike pūnaewele, kahi mea kūʻai aku, kahi inoa inoa a me kahi ʻōlelo huna. A me nā ʻāpana ʻē aʻe: Ke poʻo inoa - inoa pukaaniani, GuiSize - ka nui o ka puka aniani e holo ana (ka piha piha a i ʻole) a Hoʻohana hou - inā pono e wehe i kahi puka makani hou a i ʻole e hoʻohana i kahi puka i wehe mua ʻia me ka ʻōnaehana like. Akā ua puka koke mai kahi nuance - ua ʻike ʻia ʻaʻole hiki ke hoʻonohonoho ʻia ka ʻōlelo huna ma SAP Logon, ua kāohi ʻia ka laina. Ua ʻike ʻia ua hana ʻia kēia no nā kumu palekana: mālama ia i nā pōkole āpau i hana ʻia ma SAP Logon i kahi faila saphortcut.ini (Kokoke saplogon.ini ma ka ʻaoʻao mea hoʻohana Windows) a ma laila, ʻoiai ua hoʻopili ʻia lākou, ʻaʻole lākou i hoʻopili ikaika ʻia a, inā makemake ʻia, hiki ke hoʻokaʻawale ʻia. Akā hiki iā ʻoe ke hoʻoholo i kēia ma ka hoʻololi ʻana i ke kumukūʻai o hoʻokahi ʻāpana i ka papa inoa (ʻo ka waiwai paʻamau 0):

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

Wehe kēia i ke kahua ʻōlelo huna no ka hoʻokomo ʻana i ka puka hana pōkole ma SAP Logon:

Ke hoʻomaka nei ʻo SAP GUI mai kahi polokalamu kele pūnaewele

A ke hoʻokomo ʻoe i kahi ʻōlelo huna ma kēia kahua, e kau ʻia ma ka laina pili
saphortcut.ini, akā ke kauo ʻoe i kahi ʻaoʻao pōkole i ka papapihi, ʻaʻole ia e ʻike ʻia ma laila - akā hiki iā ʻoe ke hoʻohui iā ia me ka lima. Hoʻopili ʻia ka ʻōlelo huna, no ka 111111 penei: PW_49B02219D1F6, no 222222 - PW_4AB3211AD2F5. Akā ʻoi aku ko mākou hoihoi i ka ʻoiaʻiʻo ua hoʻopili ʻia kēia ʻōlelo huna ma ke ala hoʻokahi, kūʻokoʻa i ka PC kikoʻī, a inā mākou e hoʻonohonoho hou i ka ʻōlelo huna i ka mea mua, a laila hiki iā mākou ke hoʻohana i kahi waiwai i ʻike mua ʻia ma kēia kahua. ʻAe, inā makemake mākou e hoʻohana i kahi ʻōlelo huna i hana ʻia, pono mākou e hoʻomaopopo i ka algorithm o kēia cipher. Akā i ka hoʻoholo ʻana i nā hiʻohiʻona i hāʻawi ʻia, ʻaʻole paʻakikī kēia e hana. Ma ke ala, ma SAP GUI 7.40 ua nalowale loa kēia kahua mai ka palapala, akā ʻae pololei ia i kahi faila me kahi ʻōlelo huna i hoʻopiha ʻia.

ʻO ia hoʻi, ua ʻike ʻia ma ka polokalamu kele pono ʻoe e kaomi i ka loulou i kahi faila me ka hoʻonui .sap a me ke ʻano i makemake ʻia - a hāʻawi ia e wehe iā ia ma ke ʻano he faila e like me SAP GUI Shortcut (ma ke ʻano ma kahi PC. me ka SAP GUI i hoʻokomo ʻia) a e wehe i kahi puka aniani SAP GUI me nā ʻāpana i kuhikuhi ʻia (inā ʻo ka SID a me ka mea kūʻai aku ma ka papa inoa SAP Logon ma kēia PC).

Akā, maopopo ia ʻaʻohe mea e hana i nā faila ma mua a mālama iā lākou ma ka pūnaewele - pono lākou e hana ʻia ma muli o nā ʻāpana kūpono. No ka laʻana, hiki iā ʻoe ke hana i kahi script PHP e hana i nā pōkole (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";
?>

Inā ʻaʻole ʻoe e kuhikuhi i kahi inoa inoa a me ka ʻōlelo huna, e loaʻa iā ʻoe ka puka aniani e noi ana no ka hoʻopaʻa inoa a me ka ʻōlelo huna:

Ke hoʻomaka nei ʻo SAP GUI mai kahi polokalamu kele pūnaewele

Inā hele wale ʻoe i ke komo ʻana, e hoʻopiha ʻia ke kahua hoʻopaʻa inoa a nele ka ʻōlelo huna. Inā hāʻawi mākou i ka mea hoʻohana i ka inoa inoa a me ka ʻōlelo huna, akā aia ka mea hoʻohana ma ka PC i ke kī EnablePassword ma ke kākau inoa ma ka ʻāpana [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] i hoʻonohonoho ʻia i 0, a laila loaʻa iā mākou ka mea like. A inā hoʻonohonoho ʻia kēia kī i ka 1 a hāʻawi mākou i ka inoa a me ka ʻōlelo huna mua, e koi koke ka ʻōnaehana iā ʻoe e hoʻokomo i kahi ʻōlelo huna hou i ʻelua mau manawa. ʻO ia ka mea e pono ai mākou e loaʻa.

ʻO ka hopena, loaʻa iā mākou nā koho i noʻonoʻo ʻia e like me ke ʻano o nā mea a pau i luna.

<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>

Ua kūpono ka koho hope iaʻu. Akā ma kahi o ka hana ʻana i nā pōkole SAP, hiki iā ʻoe ke hoʻohana, no ka laʻana, ka hana ʻana i nā faila CMD, ka mea, ke wehe ʻia mai kahi polokalamu kele pūnaewele, e wehe pū i ka pukaaniani SAP GUI iā ʻoe. Aia ma lalo kahi laʻana (sapguicmd.php) e hoʻomaka pololei i ka SAP GUI me ke kaula pili piha, me ka ʻole o ka SAP Logon i hoʻonohonoho ʻia:

<?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";
?>

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka