Ifilọlẹ SAP GUI lati ẹrọ aṣawakiri kan

Mo kọkọ kọ nkan yii ninu mi bulọọgi, ki o má ba ṣe wa ati ki o ranti lẹẹkansi nigbamii, ṣugbọn niwon ko si ẹnikan ti o ka bulọọgi naa, Mo fẹ lati pin alaye yii pẹlu gbogbo eniyan, ti ẹnikan ba rii pe o wulo.

Lakoko ti o n ṣiṣẹ lori imọran ti iṣẹ atunto ọrọ igbaniwọle ni awọn eto SAP R / 3, ibeere kan dide - bawo ni a ṣe le ṣe ifilọlẹ SAP GUI pẹlu awọn aye pataki lati ẹrọ aṣawakiri naa? Niwọn igba ti imọran yii tumọ si lilo iṣẹ wẹẹbu kan, akọkọ dahun si ibeere SOAP lati ọdọ SAP GUI ati fifiranṣẹ lẹta kan pẹlu ọna asopọ si oju-iwe wẹẹbu kan pẹlu iwe afọwọkọ kan fun atunto ọrọ igbaniwọle si akọkọ, ati lẹhinna ṣafihan si olumulo naa. ifiranṣẹ kan nipa atunto ọrọ igbaniwọle aṣeyọri ati iṣafihan ọrọ igbaniwọle ibẹrẹ pupọ, lẹhinna Emi yoo fẹ oju-iwe yii lati tun ni ọna asopọ kan lati ṣe ifilọlẹ SAP GUI. Pẹlupẹlu, ọna asopọ yii yẹ ki o ṣii eto ti o fẹ, ati, pelu, pẹlu iwọle ati awọn aaye igbaniwọle ti o kun ni ẹẹkan: olumulo yoo ni lati kun ọrọ igbaniwọle ti iṣelọpọ lẹẹmeji.

Ifilọlẹ SAP Logon kii ṣe iwunilori fun idi wa, ati nigbati o nṣiṣẹ sapgui.exe ko ṣee ṣe lati pato alabara ati orukọ olumulo, ṣugbọn o ṣee ṣe lati ṣe ifilọlẹ eto ti ko ṣalaye ni SAP Logon. Ni apa keji, ifilọlẹ SAP GUI pẹlu awọn aye olupin lainidii ko ṣe pataki: ti a ba n yanju iṣoro ti atunto ọrọ igbaniwọle olumulo kan, lẹhinna o ṣee ṣe pe o ti ni laini pataki ni SAP Logon, pẹlu awọn eto ti o nilo, ati nibẹ. ni ko si ye lati idotin pẹlu ara rẹ. Ṣugbọn awọn ibeere ti a pato ti pade nipasẹ ọna ẹrọ SAP GUI Ọna abuja ati eto sapshcut.exe funrararẹ, eyiti o jẹ ki o ṣee ṣe lati ṣe ifilọlẹ SAP GUI nipa lilo “ọna abuja” kan pato.

Yiyan iṣoro naa ni ori-lori: ifilọlẹ sapshcut.exe taara lati ẹrọ aṣawakiri nipa lilo ohun ActiveX kan:

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');
}

Ojutu naa ko dara: ni akọkọ, o ṣiṣẹ nikan ni Internet Explorer, keji, o nilo awọn eto aabo ti o yẹ ni ẹrọ aṣawakiri, eyiti o le ni idinamọ ninu ile-iṣẹ kan ni ipele agbegbe, ati paapaa ti o ba gba ọ laaye, aṣawakiri naa ṣafihan window kan pẹlu idẹruba. ikilọ si olumulo:

Ifilọlẹ SAP GUI lati ẹrọ aṣawakiri kan

Mo wa ojutu #2 lori Intanẹẹti: ṣiṣẹda ara rẹ ayelujara Ilana. Gba wa laaye lati ṣe ifilọlẹ ohun elo ti a nilo nipa lilo ọna asopọ kan ti n tọka ilana naa, eyiti awa tikararẹ forukọsilẹ ni Windows ni iforukọsilẹ ni apakan HKEY_CLASSES_ROOT. Niwọn igba ti SAP GUI Ọna abuja ni apakan apakan tirẹ ni apakan yii, o le ṣafikun paramita okun Ilana Ilana URL pẹlu iye ṣofo nibẹ:

Ifilọlẹ SAP GUI lati ẹrọ aṣawakiri kan

Ilana yii bẹrẹ sapgui.exe pẹlu paramita /ABUJA, eyiti o jẹ deede ohun ti a nilo:

Ifilọlẹ SAP GUI lati ẹrọ aṣawakiri kan

O dara, tabi ti a ba fẹ ṣe ilana lainidii patapata (fun apẹẹrẹ, sapshcut), lẹhinna o le forukọsilẹ ni lilo faili reg atẹle yii:

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

Bayi, ti a ba ṣe ọna asopọ kan lori oju-iwe wẹẹbu ti o nfihan ilana naa Sapgui.Apaja.Faili Ni ọna kanna:

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

A yẹ ki o wo window kan bi eleyi:

Ifilọlẹ SAP GUI lati ẹrọ aṣawakiri kan

Ati pe ohun gbogbo dabi ẹni nla, ṣugbọn nigbati o ba tẹ bọtini “Gba” a rii:

Ifilọlẹ SAP GUI lati ẹrọ aṣawakiri kan

Oops, ẹrọ aṣawakiri naa yi ọpa aaye si %20. O dara, awọn ohun kikọ miiran yoo tun jẹ koodu si koodu nomba tiwọn pẹlu aami ogorun kan. Ati pe ohun ti ko dun julọ ni pe ko si ohunkan ti o le ṣee ṣe nibi ni ipele aṣawakiri (gbogbo nkan nibi ni a ṣe ni ibamu si boṣewa) - ẹrọ aṣawakiri ko fẹran iru awọn ohun kikọ, ati onitumọ aṣẹ Windows ko ṣiṣẹ pẹlu iru awọn iye koodu. Ati iyokuro diẹ sii - gbogbo okun ti kọja bi paramita kan, pẹlu orukọ ilana ati paapaa oluṣafihan (sapgui.shortcut.file:). Jubẹlọ, biotilejepe kanna sapshcut.exe le sọ ohun gbogbo ti kii ṣe paramita fun u (bẹrẹ pẹlu aami "-", lẹhinna orukọ, "=" ati iye), i.e. ila bi "sapgui.shortcut.file: -system=SID"Yoo tun ṣiṣẹ, lẹhinna laisi aaye kan"sapgui.shortcut.file:-system=SID"ko ṣiṣẹ mọ.

O wa ni pe, ni ipilẹ, awọn aṣayan meji wa fun lilo ilana URI:

  1. Lilo laisi awọn paramita: A ṣẹda gbogbo opo ti awọn ilana fun gbogbo awọn eto wa ti iru SIDANDT, bii AAA200, BBB200 ati bẹbẹ lọ. Ti o ba kan nilo lati bẹrẹ eto ti o fẹ, lẹhinna aṣayan jẹ iṣẹ ṣiṣe pupọ, ṣugbọn ninu ọran wa ko dara, nitori o kere ju iwọ yoo fẹ lati gbe iwọle olumulo, ṣugbọn eyi ko le ṣee ṣe ni ọna yii.
  2. Lilo eto murasilẹ lati pe sapshcut.exe tabi sapgui.exe. Ohun pataki ti eto yii rọrun - o gbọdọ gba okun ti ẹrọ aṣawakiri naa gbejade si rẹ nipasẹ ilana wẹẹbu ki o yipada si aṣoju ti Windows gba, ie. yi gbogbo awọn koodu ohun kikọ pada si awọn ohun kikọ (boya paapaa ṣe itupalẹ okun ni ibamu si awọn ayeraye) ati pe o ti pe SAP GUI tẹlẹ pẹlu aṣẹ ti o pe ni idaniloju. Ninu ọran wa, ko tun dara patapata (eyi ni idi ti Emi ko paapaa kọ), nitori ko to fun wa lati ṣafikun ilana naa lori gbogbo awọn PC olumulo (laarin agbegbe kan eyi tun dara, botilẹjẹpe o tun dara lati yago fun iwa yii), ṣugbọn nibi a yoo nilo aaye diẹ sii lori PC, ati rii daju nigbagbogbo pe ko lọ nigbati sọfitiwia ba tun sori PC.

Awon. A tun sọ aṣayan yii silẹ bi ko yẹ fun wa.

Ni aaye yii Mo ti bẹrẹ tẹlẹ lati ronu pe Emi yoo ni lati sọ o dabọ si imọran ti ifilọlẹ SAP GUI pẹlu awọn aye pataki lati ẹrọ aṣawakiri, ṣugbọn lẹhinna imọran wa si mi pe o le ṣe ọna abuja ni SAP Logon ati daakọ si tabili rẹ. Mo lo ọna yii ni ẹẹkan, ṣugbọn ṣaaju iyẹn Emi ko wo ni pato faili ọna abuja naa. Ati pe o wa ni pe ọna abuja yii jẹ faili ọrọ deede pẹlu itẹsiwaju .oje. Ati pe ti o ba ṣiṣẹ lori Windows, SAP GUI yoo ṣe ifilọlẹ pẹlu awọn paramita ti o pato ninu faili yii. "Bingo!"

Ọna kika faili yii fẹrẹ to atẹle (o le tun ṣe ifilọlẹ idunadura kan ni ibẹrẹ, ṣugbọn Mo fi silẹ):

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

O dabi pe ohun gbogbo ti o nilo: idamo eto, alabara, orukọ olumulo ati paapaa ọrọ igbaniwọle kan. Ati paapaa awọn paramita afikun: Title - akọle window, Gigun iwọn - iwọn ti window nṣiṣẹ (iboju kikun tabi rara) ati Ṣe lilo - boya o jẹ dandan lati ṣii window tuntun tabi lo ọkan ti o ṣii tẹlẹ pẹlu eto kanna. Ṣugbọn nuance kan han lẹsẹkẹsẹ - o wa ni pe ọrọ igbaniwọle ni SAP Logon ko le ṣeto, laini ti dina. O wa ni pe eyi ni a ṣe fun awọn idi aabo: o tọju gbogbo awọn ọna abuja ti a ṣẹda ni SAP Logon ninu faili kan sapshortcut.ini (Nitosi saplogon.ini ninu profaili olumulo Windows) ati nibẹ, botilẹjẹpe wọn jẹ fifi ẹnọ kọ nkan, wọn kii ṣe fifi ẹnọ kọ nkan ti o lagbara pupọ ati, ti o ba fẹ, wọn le jẹ decrypted. Ṣugbọn o le yanju eyi nipa yiyipada iye ti paramita kan ninu iforukọsilẹ (iye aiyipada jẹ 0):

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

Eyi ṣii aaye Ọrọigbaniwọle fun titẹsi lori fọọmu ẹda ọna abuja ni SAP Logon:

Ifilọlẹ SAP GUI lati ẹrọ aṣawakiri kan

Ati nigbati o ba tẹ ọrọ igbaniwọle sii ni aaye yii, yoo gbe si laini ti o baamu
sapshortcut.ini, ṣugbọn nigbati o ba fa ọna abuja kan si tabili tabili, ko han nibẹ - ṣugbọn o le fi kun sibẹ pẹlu ọwọ. Ọrọigbaniwọle ti paroko, fun 111111 yoo jẹ bi atẹle: PW_49B02219D1F6, fun 222222 - PW_4AB3211AD2F5. Ṣugbọn a nifẹ diẹ sii ni otitọ pe ọrọ igbaniwọle yii ti paroko ni ọna kan, ominira ti PC kan pato, ati pe ti a ba tun ọrọ igbaniwọle pada si ọkan akọkọ, lẹhinna a le lo iye kan ti a ti mọ tẹlẹ ni aaye yii. O dara, ti a ba fẹ lo ọrọ igbaniwọle ti a ṣẹda laileto, a yoo ni oye algorithm ti cipher yii. Ṣugbọn ṣiṣe idajọ nipasẹ awọn apẹẹrẹ ti a fun, eyi kii yoo nira lati ṣe. Nipa ọna, ni SAP GUI 7.40 aaye yii parẹ patapata lati fọọmu naa, ṣugbọn o gba faili ni deede pẹlu ọrọ igbaniwọle ti o kun.

Iyẹn ni, o wa ni pe ninu ẹrọ aṣawakiri o kan nilo lati tẹ ọna asopọ si faili kan pẹlu itẹsiwaju .sap ati ọna kika ti o fẹ - ati pe yoo funni lati ṣii bi faili kan bii SAP GUI Ọna abuja (nipa ti ara lori PC kan pẹlu SAP GUI ti a fi sii) ati pe yoo ṣii window SAP GUI kan pẹlu awọn paramita ti a sọ pato (ti SID ati bata alabara wa ninu atokọ SAP Logon lori PC yii).

Ṣugbọn, o han gbangba pe ko si ẹnikan ti yoo ṣẹda awọn faili ni ilosiwaju ati fi wọn pamọ sori aaye - wọn gbọdọ ṣe ipilẹṣẹ da lori awọn aye pataki. Fun apẹẹrẹ, o le ṣẹda iwe afọwọkọ PHP lati ṣe awọn ọna abuja (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";
?>

Ti o ko ba pato orukọ olumulo ati ọrọ igbaniwọle, iwọ yoo gba window atẹle ti o beere fun wiwọle ati ọrọ igbaniwọle:

Ifilọlẹ SAP GUI lati ẹrọ aṣawakiri kan

Ti o ba kọja iwọle nikan, aaye iwọle yoo kun ati aaye ọrọ igbaniwọle yoo ṣofo. Ti a ba fun olumulo ni iwọle ati ọrọ igbaniwọle, ṣugbọn olumulo lori PC ni bọtini EnablePassword ninu iforukọsilẹ ni apakan [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] ti a ṣeto si 0, lẹhinna a gba ohun kanna. Ati pe ti bọtini yii ba ṣeto si 1 ati pe a kọja orukọ mejeeji ati ọrọ igbaniwọle akọkọ, eto naa yoo tọ ọ lẹsẹkẹsẹ lati tẹ ọrọ igbaniwọle ayeraye tuntun kan lẹẹmeji. Iyẹn ni ohun ti a nilo lati gba.

Bi abajade, a ni eto atẹle ti awọn aṣayan ti a gbero bi apejuwe ti gbogbo awọn ti o wa loke:

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

Aṣayan ti o kẹhin baamu fun mi. Ṣugbọn dipo ti ipilẹṣẹ awọn ọna abuja SAP, o tun le lo, fun apẹẹrẹ, ṣiṣẹda awọn faili CMD, eyiti, nigbati o ṣii lati ẹrọ aṣawakiri kan, yoo tun ṣii window SAP GUI fun ọ. Ni isalẹ jẹ apẹẹrẹ (sapguicmd.php) taara ifilọlẹ SAP GUI pẹlu okun asopọ ni kikun, laisi iwulo lati ni tunto SAP Logon:

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

orisun: www.habr.com

Fi ọrọìwòye kun