A’ cur SAP GUI air bhog bho bhrobhsair

Sgrìobh mi an artaigil seo an toiseach na mo блог, gus nach rannsaich agus nach cuimhnich thu a-rithist nas fhaide air adhart, ach leis nach leugh duine am blog, bha mi airson am fiosrachadh seo a cho-roinn leis a h-uile duine, air eagal ’s gum biodh cuideigin ga fhaighinn feumail.

Fhad ‘s a bha e ag obair air a’ bheachd air seirbheis ath-shuidheachadh facal-faire ann an siostaman SAP R / 3, dh ’èirich ceist - ciamar a chuireas tu SAP GUI air bhog leis na paramadairean riatanach bhon bhrobhsair? Leis gu robh am beachd seo a ’ciallachadh cleachdadh seirbheis lìn, an toiseach a’ freagairt iarrtas SOAP bhon SAP GUI agus a ’cur post-d le ceangal gu duilleag-lìn le sgriobt airson am facal-faire ath-shuidheachadh chun chiad fhear, agus an uairsin a thaisbeanadh don neach-cleachdaidh teachdaireachd mun ath-shuidheachadh facal-faire soirbheachail agus a’ taisbeanadh am facal-faire tùsail seo , an uairsin bu mhath leam gum biodh ceangal aig an duilleag seo cuideachd gus SAP GUI a chuir air bhog. A bharrachd air an sin, bu chòir don cheangal seo an siostam a tha thu ag iarraidh fhosgladh, agus, mas fheàrr, leis na raointean logadh a-steach agus facal-faire air an lìonadh a-steach aig an aon àm: cha bhiodh aig an neach-cleachdaidh ach am facal-faire toraidh a lìonadh dà uair.

Cha robh cur air bhog SAP Logon inntinneach airson ar n-adhbhar, agus nuair a bha e a’ ruith sapgui.exe bha e do-dhèanta ainm an neach-dèiligidh agus an neach-cleachdaidh a shònrachadh, ach bha e comasach siostam a chuir air bhog nach eil air a mhìneachadh ann an SAP Logon. Air an làimh eile, cha robh cur air bhog SAP GUI le paramadairean frithealaiche neo-riaghailteach gu sònraichte buntainneach: ma tha sinn a ’fuasgladh na duilgheadas a thaobh ath-shuidheachadh facal-faire neach-cleachdaidh, is coltaiche gu bheil an loidhne riatanach aige mu thràth ann an SAP Logon, leis na roghainnean a dh’ fheumas e, agus an sin chan eil feum air a bhith a 'bualadh air a chuid fhèin. Ach chaidh na riatanasan ainmichte a choileanadh le teicneòlas SAP GUI Shortcut agus am prògram sapshcut.exe fhèin, a leig leis an SAP GUI a chuir air bhog a’ cleachdadh “ath-ghoirid” sònraichte.

Fuasgladh na duilgheadas ceann-air: a 'cur air bhog sapshcut.exe dìreach bhon bhrobhsair a' cleachdadh nì 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');
}

Tha am fuasgladh dona: an toiseach, chan obraich e ach ann an Internet Explorer, san dàrna àite, feumaidh e suidheachaidhean tèarainteachd iomchaidh anns a’ bhrobhsair, a dh’ fhaodadh ann am buidheann a bhith toirmisgte aig ìre an fhearainn, agus eadhon ma tha e ceadaichte, tha am brabhsair a’ taisbeanadh uinneag le eagal. rabhadh don neach-cleachdaidh:

A’ cur SAP GUI air bhog bho bhrobhsair

Lorg mi fuasgladh #2 air an eadar-lìon: cruthachadh do phròtacal lìn fhèin. A’ leigeil leinn an aplacaid a tha a dhìth oirnn a chuir air bhog a’ cleachdadh ceangal a’ comharrachadh a’ phròtacal, a tha sinn fhìn a’ clàradh ann an Windows sa chlàr anns an roinn HKEY_CLASSES_ROOT. Leis gu bheil am fo-earrann fhèin aig SAP GUI Shortcut san roinn seo, faodaidh tu paramadair sreang URL Protocol a chuir ris le luach falamh an sin:

A’ cur SAP GUI air bhog bho bhrobhsair

Bidh am protocol seo a’ tòiseachadh sapgui.exe le paramadair /GHORRAICHTE, is e sin dìreach na tha a dhìth oirnn:

A’ cur SAP GUI air bhog bho bhrobhsair

Uill, no ma tha sinn airson protocol gu tur neo-riaghailteach a dhèanamh (mar eisimpleir, sapshcut), faodaidh tu a chlàradh leis an fhaidhle reg a leanas:

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

A-nis, ma nì sinn ceangal air duilleag-lìn a’ comharrachadh a’ phròtacal Sapgui.Shortcut.Faidhle San aon dòigh:

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

Bu chòir dhuinn uinneag mar seo fhaicinn:

A’ cur SAP GUI air bhog bho bhrobhsair

Agus tha coltas gu bheil a h-uile dad glè mhath, ach nuair a phutas tu air a’ phutan “Ceadaich” chì sinn:

A’ cur SAP GUI air bhog bho bhrobhsair

Och, thionndaidh am brabhsair am bàr-fànais gu %20. Uill, thèid caractaran eile a chòdachadh a-steach don chòd àireamhach aca fhèin le samhla ceudad. Agus is e an rud as mì-thlachdmhor nach urrainnear dad a dhèanamh an seo aig ìre a’ bhrobhsair (tha a h-uile dad an seo air a dhèanamh a rèir na h-ìre) - cha toil leis a’ bhrobhsair na caractaran sin, agus chan eil eadar-theangair àithne Windows ag obair le luachan còdaichte mar sin. Agus aon minus eile - thèid an sreang gu lèir a thoirt seachad mar pharamadair, a’ toirt a-steach ainm a’ phròtacal agus eadhon an coloin (sapgui.shortcut.file:). A bharrachd air an sin, ged a tha an aon rud sapshcut.exe an urrainn dhut a h-uile càil nach eil na pharamadair air a thilgeil air falbh (a’ tòiseachadh leis an t-samhla “-“, an uairsin an t-ainm, “=” agus luach), i.e. loidhne mar "sapgui.shortcut.file: -system=SID"obraichidh e fhathast, an uairsin gun àite"sapgui.shortcut.file:-system=SID“Chan eil e ag obair tuilleadh.

Tha e a’ tionndadh a-mach, ann am prionnsapal, gu bheil dà roghainn ann airson protocol URI a chleachdadh:

  1. Cleachdadh às aonais crìochan: Bidh sinn a’ cruthachadh dòrlach de phròtacalan airson ar siostaman den t-seòrsa gu lèir SIDMANDT, mar ACH 200, BBB200 Agus mar sin air adhart. Ma dh'fheumas tu dìreach an siostam a tha thu ag iarraidh a thòiseachadh, tha an roghainn gu math obrachail, ach anns a 'chùis againn chan eil e freagarrach, oir co-dhiù tha thu airson an neach-cleachdaidh a ghluasad a-steach, ach chan urrainnear seo a dhèanamh san dòigh seo.
  2. A 'cleachdadh prògram wrapper gus fònadh sapshcut.exe no sapgui.exe. Tha brìgh a’ phrògraim seo sìmplidh - feumaidh e an t-sreang a bheir am brabhsair thuige tron ​​phròtacal lìn a ghabhail agus a thionndadh a-steach don riochdachadh a gheibh Windows, i.e. tionndaidh a h-uile còd caractar air ais gu caractaran (is dòcha eadhon a’ parsadh an t-sreang a rèir paramadairean) agus mu thràth a’ gairm SAP GUI le òrdugh ceart cinnteach. Anns a 'chùis againn, chan eil e gu tur freagarrach cuideachd (is e sin as coireach nach do sgrìobh mi eadhon e), oir chan eil e gu leòr dhuinn am protocol a chuir ris a h-uile PC cleachdaiche (taobh a-staigh àrainn tha seo fhathast ceart, ged a tha e nas fheàrr cuideachd seachain an cleachdadh seo), ach an seo feumaidh sinn barrachd àite am prògram air a’ PC, agus cuideachd dèanamh cinnteach nach fhalbh e nuair a thèid am bathar-bog ath-shuidheachadh air a’ PC.

An fheadhainn sin. Bidh sinn cuideachd a’ tilgeadh air falbh an roghainn seo mar rud nach eil iomchaidh dhuinne.

Aig an ìre seo bha mi mu thràth a’ tòiseachadh a’ smaoineachadh gum feumainn soraidh slàn a chuir air bhog leis a’ bheachd a bhith a’ cur air bhog SAP GUI leis na paramadairean riatanach bhon bhrobhsair, ach an uairsin thàinig am beachd thugam gun urrainn dhut ath-ghoirid a dhèanamh ann an SAP Logon agus dèan lethbhreac dheth dhan desktop agad. Chleachd mi an dòigh seo aon uair, ach roimhe sin cha do choimhead mi gu sònraichte air an fhaidhle ath-ghoirid. Agus thionndaidh e a-mach gur e faidhle teacsa àbhaisteach a th’ anns a’ gheàrr-liosta seo leis an leudachadh .sap. Agus ma ruitheas tu e air Windows, cuiridh SAP GUI air bhog leis na paramadairean a tha air an sònrachadh san fhaidhle seo. "Bingo!"

Tha cruth an fhaidhle seo timcheall air na leanas (is dòcha gu bheil malairt air a chuir air bhog aig toiseach tòiseachaidh, ach dh’ fhàg mi e):

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

Tha e coltach gu bheil a h-uile dad a tha a dhìth: aithnichear siostam, neach-dèiligidh, ainm-cleachdaidh agus eadhon facal-faire. Agus eadhon crìochan a bharrachd: Tiotal a 'Chlàir - tiotal na h-uinneige, GuiSize - meud na h-uinneige ruith (làn-sgrìn no nach eil) agus Ath-chleachdadh - co-dhiù a tha e riatanach uinneag ùr fhosgladh no fear a tha fosgailte mar-thà a chleachdadh leis an aon shiostam. Ach nochd nuance sa bhad - thionndaidh e a-mach nach b ’urrainnear am facal-faire ann an SAP Logon a shuidheachadh, chaidh an loidhne a bhacadh. Thionndaidh e a-mach gun deach seo a dhèanamh airson adhbharan tèarainteachd: bidh e a ’stòradh a h-uile ath-ghoirid a chaidh a chruthachadh ann an SAP Logon ann am faidhle sapshortcut.ini (faisg air saplogon.ini ann am pròifil cleachdaiche Windows) agus an sin, ged a tha iad air an cuairteachadh, chan eil iad air an cuairteachadh ro làidir agus, ma thogras iad, faodar an dì-chrioptachadh. Ach faodaidh tu seo fhuasgladh le bhith ag atharrachadh luach aon paramadair sa chlàr (is e an luach bunaiteach 0):

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

Fosglaidh seo an raon Facal-faire airson a dhol a-steach don fhoirm cruthachaidh shortcut ann an SAP Logon:

A’ cur SAP GUI air bhog bho bhrobhsair

Agus nuair a chuireas tu a-steach facal-faire san raon seo, thèid a chuir san loidhne fhreagarrach
sapshortcut.ini, ach nuair a tharraingeas tu ath-ghoirid chun deasg, chan eil e a’ nochdadh ann - ach faodaidh tu a chuir ris an sin le làimh. Tha am facal-faire air a chrioptachadh, airson 111111 bidh e mar a leanas: PW_49B02219D1F6, airson 222222 - PW_4AB3211AD2F5. Ach tha barrachd ùidh againn anns an fhìrinn gu bheil am facal-faire seo air a chrioptachadh ann an aon dòigh, neo-eisimeileach bhon PC sònraichte, agus ma dh’ ath-shuidhicheas sinn am facal-faire chun chiad fhear, is urrainn dhuinn aon luach ro-aithnichte a chleachdadh san raon seo. Uill, ma tha sinn airson facal-faire a chaidh a chruthachadh air thuaiream a chleachdadh, feumaidh sinn algairim an cipher seo a thuigsinn. Ach a’ breithneachadh leis na h-eisimpleirean a chaidh a thoirt seachad, cha bhith e duilich seo a dhèanamh. Co-dhiù, ann an SAP GUI 7.40 an raon seo gu tur à sealladh bhon fhoirm, ach tha e ceart a 'gabhail ri faidhle le facal-faire lìonta.

'S e sin, tha e a' tionndadh a-mach gu bheil anns a 'bhrobhsair feumaidh tu dìreach a' briogadh air a 'cheangal gu faidhle leis an .sap leudachan agus an cruth a thathar ag iarraidh - agus bidh e a' tabhann a dh'fhosglas e mar faidhle mar SAP GUI Shortcut (gu nàdarra air PC le SAP GUI air a chuir a-steach) agus fosglaidh e uinneag SAP GUI leis na paramadairean ainmichte (ma tha an SID agus am paidhir teachdaiche air liosta SAP Logon air a’ PC seo).

Ach, tha e soilleir nach bi duine dìreach a 'cruthachadh faidhlichean ro-làimh agus gan stòradh air an làrach - feumaidh iad a bhith air an cruthachadh stèidhichte air na crìochan riatanach. Mar eisimpleir, faodaidh tu sgriobt PHP a chruthachadh gus ath-ghoiridean a ghineadh (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";
?>

Mura sònraich thu ainm-cleachdaidh agus facal-faire, gheibh thu an uinneag a leanas ag iarraidh logadh a-steach agus facal-faire:

A’ cur SAP GUI air bhog bho bhrobhsair

Mura tèid thu seachad air an logadh a-steach a-mhàin, thèid an raon logaidh a-steach a lìonadh a-steach agus bidh an raon facal-faire falamh. Ma bheir sinn an dà chuid logadh a-steach agus facal-faire don neach-cleachdaidh, ach gu bheil an iuchair EnablePassword aig a’ chleachdaiche air a’ PC sa chlàr anns an roinn [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] suidhichte gu 0, gheibh sinn an aon rud. Agus dìreach ma tha an iuchair seo air a shuidheachadh gu 1 agus gun cuir sinn seachad an dà chuid an t-ainm agus am facal-faire tùsail, brosnaichidh an siostam thu sa bhad gus facal-faire maireannach ùr a chuir a-steach dà uair. Sin a dh'fheumadh sinn fhaighinn.

Mar thoradh air an sin, tha na roghainnean beachdaichte a leanas againn mar eisimpleir de na tha gu h-àrd:

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

Bha an roghainn mu dheireadh freagarrach dhomh. Ach an àite a bhith a’ gineadh ath-ghoiridean SAP, faodaidh tu cuideachd cleachdadh, mar eisimpleir, a’ gineadh faidhlichean CMD, a dh’ fhosglas, nuair a thèid fhosgladh bho bhrobhsair, uinneag SAP GUI dhut. Gu h-ìosal tha eisimpleir (sapguicmd.php) cuir air bhog an SAP GUI gu dìreach leis an t-sreath làn ceangail, gun fheum air SAP Logon a rèiteachadh:

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

Cuir beachd ann