Manokatra SAP GUI avy amin'ny navigateur

Nanoratra ity lahatsoratra ity aho tamin'ny voalohany Π±Π»ΠΎΠ³, mba tsy hikaroka sy hitadidy indray any aoriana any, fa satria tsy misy mamaky ny bilaogy dia te-hizara ity vaovao ity amin'ny rehetra aho, sao misy mahita azy mahasoa.

Raha miasa amin'ny hevitra momba ny serivisy famerenana ny tenimiafina ao amin'ny rafitra SAP R/3, dia nisy fanontaniana nipoitra - ahoana no hanombohana ny SAP GUI miaraka amin'ireo masontsivana ilaina amin'ny navigateur? Satria io hevitra io dia midika ny fampiasana serivisy tranonkala, mamaly voalohany ny fangatahana SOAP avy amin'ny SAP GUI ary mandefa taratasy misy rohy mankany amin'ny pejin-tranonkala misy script mba hamerenana ny tenimiafina amin'ny voalohany, ary avy eo aseho amin'ny mpampiasa. hafatra momba ny famerenana ny tenimiafina mahomby sy ny fampisehoana ity tenimiafina voalohany ity, dia tiako ity pejy ity mba hanana rohy ihany koa hanombohana ny SAP GUI. Ambonin'izany, ity rohy ity dia tokony hanokatra ny rafitra tiana, ary, indrindra, miaraka amin'ny saha fidirana sy tenimiafina feno indray mandeha: ny mpampiasa dia tsy maintsy mameno ny tenimiafina mamokatra indroa ihany.

Ny fandefasana SAP Logon dia tsy mahaliana ho an'ny tanjonay, ary rehefa mihazakazaka sapgui.exe dia tsy azo atao ny mamaritra ny mpanjifa sy ny anaran'ny mpampiasa, fa azo atao ny mametraka rafitra tsy voafaritra ao amin'ny SAP Logon. Amin'ny lafiny iray, ny fandefasana SAP GUI miaraka amin'ny mari-pamantarana mpizara tsy misy dikany dia tsy dia manan-danja loatra: raha mamaha ny olana amin'ny famerenana ny tenimiafin'ny mpampiasa iray isika, dia azo inoana fa efa manana ny tsipika ilaina ao amin'ny SAP Logon izy, miaraka amin'ny toe-javatra ilainy, ary eo. tsy mila manakorontana ny azy. Saingy ny fepetra voafaritra dia nomen'ny teknolojia SAP GUI Shortcut sy ny programa sapshcut.exe mihitsy, izay nahatonga ny fandefasana ny SAP GUI tamin'ny alΓ lan'ny "shortcut" manokana.

Famahana ny olana: manomboka ny sapshcut.exe mivantana avy amin'ny navigateur mampiasa zavatra 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');
}

Ny vahaolana dia ratsy: voalohany, dia miasa ao amin'ny Internet Explorer ihany, faharoa, dia mitaky fiarovana mety amin'ny navigateur, izay ao amin'ny fikambanana dia mety ho voarara amin'ny sehatra sehatra, ary na dia navela, ny navigateur dia mampiseho varavarankely amin'ny mampatahotra. fampitandremana ho an'ny mpampiasa:

Manokatra SAP GUI avy amin'ny navigateur

Nahita vahaolana #2 aho tamin'ny Internet: mamorona protocol web anao manokana. Mamela antsika hanomboka ny fampiharana ilaintsika amin'ny alalan'ny rohy manondro ny protocol, izay ny tenanay misoratra anarana ao amin'ny Windows ao amin'ny rejisitra ao amin'ny HKEY_CLASSES_ROOT fizarana. Satria ny SAP GUI Shortcut dia manana ny fizarana azy manokana amin'ity fizarana ity, azonao atao ny manampy ny mari-pamantarana string URL Protocol miaraka amin'ny sanda poakaty ao:

Manokatra SAP GUI avy amin'ny navigateur

Manomboka ity protocol ity sapgui.exe miaraka amin'ny parameter /SHORTCUT, izay tena ilaintsika:

Manokatra SAP GUI avy amin'ny navigateur

Eny, na raha te hanao protocole tsy misy dikany tanteraka isika (ohatra, sapshcut), dia azonao atao ny manoratra izany amin'ny alΓ lan'ny rakitra reg manaraka:

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

Ankehitriny, raha manao rohy amin'ny pejin-tranonkala manondro ny protocol isika Sapgui.Shortcut.File Amin'ny fomba mitovy:

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

Tokony hahita varavarankely toy izao isika:

Manokatra SAP GUI avy amin'ny navigateur

Ary toa tsara daholo ny zava-drehetra, fa rehefa manindry ny bokotra "Allow" ianao dia mahita:

Manokatra SAP GUI avy amin'ny navigateur

Oops, navadiky ny navigateur ho %20 ny habaka. Eny, ny endri-tsoratra hafa dia ho voakodia ao amin'ny kaody nomerika manokana miaraka amin'ny marika isan-jato. Ary ny tena mampalahelo dia tsy misy na inona na inona azo atao eto amin'ny sehatry ny navigateur (ny zava-drehetra eto dia atao araka ny fenitra) - tsy tian'ny navigateur ny endri-tsoratra toy izany, ary ny mpandika teny Windows dia tsy miasa amin'ny soatoavina voakodia toy izany. Ary ny minus iray hafa - ny tady manontolo dia alefa ho paramètre, ao anatin'izany ny anaran'ny protocol ary na ny colon (sapgui.shortcut.file:). Ankoatra izany, na dia mitovy sapshcut.exe afaka manary ny zava-drehetra izay tsy mari-pamantarana ho azy (manomboka amin'ny marika "-", avy eo ny anarana, "=" sy ny sandany), i.e. andalana toy ny"sapgui.shortcut.file: -system=SID"mbola hahomby ihany izany, avy eo tsy misy toerana"sapgui.shortcut.file:-system=SID« tsy miasa intsony.

Raha ny marina, misy safidy roa amin'ny fampiasana ny protocol URI:

  1. Mampiasa tsy misy mari-pamantarana: Mamorona andiana protocole ho an'ny rafitra rehetra amin'ny karazana izahay SIDMANDT, karazana AAA200, BBB200 sy ny sisa. Raha mila manomboka fotsiny ny rafitra tianao ianao, dia azo atao tsara ny safidy, fa amin'ny tranga misy antsika dia tsy mety izany, satria farafaharatsiny te-hamindra ny fidirana amin'ny mpampiasa ianao, saingy tsy azo atao izany.
  2. Mampiasa programa wrapper hiantso sapshcut.exe na sapgui.exe. Ny votoatin'ity programa ity dia tsotra - tsy maintsy maka ny tady izay ampitain'ny navigateur aminy amin'ny alΓ lan'ny protocol web ary mamadika izany ho fanehoana izay azon'ny Windows, i.e. dia mamadika ny kaody tarehintsoratra rehetra ho lasa tarehintsoratra (mety hamafa ny tady araka ny masontsivana) ary efa miantso ny SAP GUI miaraka amin'ny baiko azo antoka. Amin'ny tranga misy antsika dia tsy mety tanteraka ihany koa (izay no tsy nanoratako azy akory), satria tsy ampy ho antsika ny manampy ny protocol amin'ny PC mpampiasa rehetra (ao anatin'ny sehatra iray dia mbola mety izany, na dia tsara kokoa aza ny manao izany. ialao io fomba fanao io), fa eto dia mila mametraka bebe kokoa ny programa amin'ny PC isika, ary miantoka hatrany fa tsy miala izany rehefa averina apetraka amin'ny PC ny rindrambaiko.

Ireo. Arianay ihany koa ity safidy ity ho tsy mety aminay.

Amin'izao fotoana izao dia efa nanomboka nieritreritra aho fa tsy maintsy manao veloma amin'ny hevitra hanokafana SAP GUI miaraka amin'ireo masontsivana ilaina amin'ny navigateur, saingy avy eo dia tonga tamiko ny hevitra fa afaka manao hitsin-dΓ lana amin'ny SAP Logon ianao ary kopia amin'ny biraonao. Nampiasa an'io fomba io aho indray mandeha, fa talohan'izay dia tsy nijery manokana ny rakitra hitsin-dΓ lana aho. Ary hita fa ity hitsin-dΓ lana ity dia rakitra lahatsoratra mahazatra miaraka amin'ny fanitarana .sap. Ary raha mihazakazaka izany amin'ny Windows ianao, SAP GUI dia hanomboka miaraka amin'ireo mari-pamantarana voalaza ao amin'ity rakitra ity. "Bingo!"

Ny endrik'ity rakitra ity dia eo ho eo amin'ireto manaraka ireto (mety misy koa ny fifampiraharahana natomboka tamin'ny fanombohana, saingy nesoriko izany):

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

Toa ny zavatra rehetra ilaina: famantarana rafitra, mpanjifa, solonanarana ary tenimiafina mihitsy aza. Ary na dia paramètre fanampiny aza: Title - lohatenin'ny varavarankely, GuiSize - haben'ny varavarankely mandeha (ecran feno na tsia) ary ampiasaina - raha ilaina ny manokatra varavarankely vaovao na mampiasa varavarankely efa misokatra miaraka amin'ny rafitra mitovy. Saingy nisy nuance nipoitra avy hatrany - hita fa tsy azo napetraka ny tenimiafina ao amin'ny SAP Logon, voasakana ny tsipika. Hita fa noho ny antony fiarovana izany: mitahiry ireo hitsin-dàlana rehetra noforonina tao amin'ny SAP Logon ao anaty rakitra saphortcut.ini (Akaiky saplogon.ini ao amin'ny mombamomba ny mpampiasa Windows) ary any, na dia voatahiry aza izy ireo, dia tsy voafehy mafy loatra izy ireo ary, raha tianao, dia azo alaina. Saingy azonao atao ny mamaha izany amin'ny alàlan'ny fanovana ny sandan'ny parameter iray ao amin'ny rejisitra (ny sanda default dia 0):

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

Ity dia manokatra ny saha Password ho fidirana amin'ny endrika famoronana hitsin-dΓ lana ao amin'ny SAP Logon:

Manokatra SAP GUI avy amin'ny navigateur

Ary rehefa mampiditra tenimiafina amin'ity sehatra ity ianao dia hapetraka ao amin'ny tsipika mifanaraka amin'izany
saphortcut.ini, fa rehefa misintona hitsin-dΓ lana mankany amin'ny desktop ianao dia tsy miseho eo izany - fa azonao ampidirina amin'ny tanana. Ny tenimiafina dia miafina, ho an'ny 111111 dia ho toy izao manaraka izao: PW_49B02219D1F6, ho an'ny 222222 - PW_4AB3211AD2F5. Saingy liana kokoa amin'ny hoe ity tenimiafina ity dia voarakotra amin'ny fomba iray, tsy miankina amin'ny PC manokana, ary raha averinay amin'ny voalohany ny tenimiafina, dia afaka mampiasa sanda iray efa fantatra amin'ity sehatra ity isika. Eny ary, raha te hampiasa tenimiafina noforonina kisendrasendra isika dia tsy maintsy mahatakatra ny algorithm amin'ity cipher ity. Tsy ho sarotra anefa izany raha jerena ny ohatra nomena. Raha ny marina, ao amin'ny SAP GUI 7.40 dia nanjavona tanteraka tamin'ny endrika ity saha ity, saingy manaiky tsara ny rakitra misy tenimiafina feno.

Izany hoe, hita fa ao amin'ny navigateur dia mila manindry fotsiny ny rohy mankany amin'ny rakitra iray miaraka amin'ny fanitarana .sap sy ny endrika irina ianao - ary hanolotra ny hanokafana azy ho rakitra amin'ny karazana SAP GUI Shortcut (voajanahary amin'ny PC misy SAP GUI napetraka) ary hanokatra varavarankely SAP GUI miaraka amin'ny mari-pamantarana voafaritra (raha toa ka ao amin'ny lisitry ny SAP Logon amin'ity PC ity ny mpivady SID sy ny mpanjifa).

Saingy, mazava ho azy fa tsy misy olona hamorona rakitra mialoha fotsiny ary hitahiry azy ireo ao amin'ny tranokala - tsy maintsy amboarina mifototra amin'ny mari-pamantarana ilaina izy ireo. Ohatra, azonao atao ny mamorona script PHP hamoronana hitsin-dΓ lana (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";
?>

Raha tsy manendry solonanarana sy tenimiafina ianao dia hahazo ity varavarankely manaraka ity izay mangataka fidirana sy tenimiafina:

Manokatra SAP GUI avy amin'ny navigateur

Raha tsy mandalo afa-tsy ny fidirana ianao dia ho fenoina ny saha fidirana ary ho foana ny sahan'ny tenimiafina. Raha omentsika ny mpampiasa ny fidirana sy ny tenimiafina, fa ny mpampiasa amin'ny PC dia manana ny lakile EnablePassword ao amin'ny rejisitra ao amin'ny fizarana [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] napetraka amin'ny 0, dia mahazo zavatra mitovy isika. Ary raha toa ka apetraka amin'ny 1 io lakile io ary mandalo ny anarana sy ny tenimiafina voalohany isika, dia hanosika anao avy hatrany ny rafitra hampiditra tenimiafina maharitra vaovao indroa. Izany no nilainay azo.

Vokatr'izany dia manana ireto karazana safidy manaraka ireto isika ho fanoharana amin'ireo rehetra voalaza etsy ambony ireo:

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

Ny safidy farany dia nety tamiko. Fa raha tokony hamorona SAP hitsin-dΓ lana, dia azonao atao koa ny mampiasa, ohatra, ny famoronana rakitra CMD, izay, rehefa misokatra amin'ny navigateur, dia hanokatra ny varavarankely SAP GUI ho anao. Ity ambany ity misy ohatra (sapguicmd.php) manomboka mivantana ny SAP GUI miaraka amin'ny tady fifandraisana feno, tsy mila manana SAP Logon namboarina:

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

Add a comment