ഒരു ബ്രൗസറിൽ നിന്ന് SAP GUI സമാരംഭിക്കുന്നു

ഞാൻ ആദ്യമായി ഈ ലേഖനം എൻ്റെ ലേഖനത്തിൽ എഴുതി ബ്ലോഗ്, പിന്നീട് വീണ്ടും തിരഞ്ഞ് ഓർമ്മിക്കാതിരിക്കാൻ, പക്ഷേ ആരും ബ്ലോഗ് വായിക്കാത്തതിനാൽ, ഈ വിവരം ആർക്കെങ്കിലും ഉപകാരപ്രദമാണെന്ന് തോന്നിയാൽ എല്ലാവരുമായും പങ്കിടാൻ ഞാൻ ആഗ്രഹിക്കുന്നു.

SAP R/3 സിസ്റ്റങ്ങളിൽ ഒരു പാസ്‌വേഡ് റീസെറ്റ് സേവനത്തിൻ്റെ ആശയത്തിൽ പ്രവർത്തിക്കുമ്പോൾ, ഒരു ചോദ്യം ഉയർന്നു - ബ്രൗസറിൽ നിന്ന് ആവശ്യമായ പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് SAP GUI എങ്ങനെ സമാരംഭിക്കാം? ഈ ആശയം ഒരു വെബ് സേവനത്തിൻ്റെ ഉപയോഗത്തെ സൂചിപ്പിക്കുന്നതിനാൽ, ആദ്യം SAP GUI-ൽ നിന്നുള്ള ഒരു SOAP അഭ്യർത്ഥനയോട് പ്രതികരിക്കുകയും പാസ്‌വേഡ് പ്രാരംഭത്തിലേക്ക് പുനഃസജ്ജമാക്കുന്നതിനുള്ള സ്‌ക്രിപ്‌റ്റുള്ള ഒരു വെബ് പേജിലേക്ക് ലിങ്ക് സഹിതം ഒരു കത്ത് അയയ്ക്കുകയും തുടർന്ന് ഉപയോക്താവിന് പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു. വിജയകരമായ പാസ്‌വേഡ് പുനഃസജ്ജീകരണത്തെക്കുറിച്ചും ഈ പ്രാരംഭ പാസ്‌വേഡ് പ്രദർശിപ്പിക്കുന്നതിനെക്കുറിച്ചും ഒരു സന്ദേശം, തുടർന്ന് SAP GUI സമാരംഭിക്കുന്നതിനുള്ള ഒരു ലിങ്കും ഈ പേജിൽ ഉണ്ടായിരിക്കണമെന്ന് ഞാൻ ആഗ്രഹിക്കുന്നു. മാത്രമല്ല, ഈ ലിങ്ക് ആവശ്യമുള്ള സിസ്റ്റം തുറക്കണം, കൂടാതെ, ലോഗിൻ, പാസ്‌വേഡ് ഫീൽഡുകൾ ഒരേസമയം പൂരിപ്പിച്ചുകൊണ്ട്: ഉപയോക്താവിന് ഉൽപ്പാദനക്ഷമമായ പാസ്‌വേഡ് രണ്ടുതവണ മാത്രം പൂരിപ്പിക്കേണ്ടതുണ്ട്.

SAP ലോഗൺ സമാരംഭിക്കുന്നത് ഞങ്ങളുടെ ഉദ്ദേശ്യത്തിന് താൽപ്പര്യമുള്ള കാര്യമല്ല, കൂടാതെ sapgui.exe പ്രവർത്തിപ്പിക്കുമ്പോൾ ക്ലയൻ്റും ഉപയോക്തൃ നാമവും വ്യക്തമാക്കുന്നത് അസാധ്യമാണ്, എന്നാൽ SAP ലോഗനിൽ നിർവചിച്ചിട്ടില്ലാത്ത ഒരു സിസ്റ്റം സമാരംഭിക്കാൻ സാധിച്ചു. മറുവശത്ത്, അനിയന്ത്രിതമായ സെർവർ പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് SAP GUI സമാരംഭിക്കുന്നത് പ്രത്യേകിച്ചും പ്രസക്തമല്ല: ഒരു ഉപയോക്താവിൻ്റെ പാസ്‌വേഡ് പുനഃസജ്ജമാക്കുന്നതിനുള്ള പ്രശ്നം ഞങ്ങൾ പരിഹരിക്കുകയാണെങ്കിൽ, മിക്കവാറും അയാൾക്ക് ആവശ്യമായ ക്രമീകരണങ്ങൾക്കൊപ്പം SAP ലോഗനിൽ ആവശ്യമായ ലൈൻ ഇതിനകം ഉണ്ടായിരിക്കും. സ്വന്തം കാര്യം കുഴപ്പിക്കേണ്ട ആവശ്യമില്ല. എന്നാൽ നിർദ്ദിഷ്ട ആവശ്യകതകൾ SAP GUI കുറുക്കുവഴി സാങ്കേതികവിദ്യയും sapshcut.exe പ്രോഗ്രാമും നിറവേറ്റുന്നു, ഇത് ഒരു നിർദ്ദിഷ്ട "കുറുക്കുവഴി" ഉപയോഗിച്ച് SAP GUI സമാരംഭിക്കുന്നത് സാധ്യമാക്കി.

പ്രശ്‌നം നേരിട്ട് പരിഹരിക്കുന്നു: ActiveX ഒബ്‌ജക്റ്റ് ഉപയോഗിച്ച് ബ്രൗസറിൽ നിന്ന് നേരിട്ട് sapshcut.exe സമാരംഭിക്കുന്നു:

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

പരിഹാരം മോശമാണ്: ഒന്നാമതായി, ഇത് ഇൻ്റർനെറ്റ് എക്സ്പ്ലോററിൽ മാത്രമേ പ്രവർത്തിക്കൂ, രണ്ടാമതായി, ബ്രൗസറിൽ ഉചിതമായ സുരക്ഷാ ക്രമീകരണങ്ങൾ ആവശ്യമാണ്, ഇത് ഒരു സ്ഥാപനത്തിൽ ഡൊമെയ്ൻ തലത്തിൽ നിരോധിച്ചേക്കാം, അനുവദിച്ചാലും, ബ്രൗസർ ഭയപ്പെടുത്തുന്ന ഒരു വിൻഡോ പ്രദർശിപ്പിക്കുന്നു. ഉപയോക്താവിന് മുന്നറിയിപ്പ്:

ഒരു ബ്രൗസറിൽ നിന്ന് SAP GUI സമാരംഭിക്കുന്നു

ഇൻ്റർനെറ്റിൽ ഞാൻ പരിഹാരം #2 കണ്ടെത്തി: നിങ്ങളുടെ സ്വന്തം വെബ് പ്രോട്ടോക്കോൾ സൃഷ്ടിക്കുന്നു. HKEY_CLASSES_ROOT വിഭാഗത്തിലെ രജിസ്ട്രിയിൽ ഞങ്ങൾ സ്വയം വിൻഡോസിൽ രജിസ്റ്റർ ചെയ്യുന്ന പ്രോട്ടോക്കോൾ സൂചിപ്പിക്കുന്ന ഒരു ലിങ്ക് ഉപയോഗിച്ച് ഞങ്ങൾക്ക് ആവശ്യമുള്ള ആപ്ലിക്കേഷൻ സമാരംഭിക്കാൻ ഞങ്ങളെ അനുവദിക്കുന്നു. ഈ വിഭാഗത്തിൽ SAP GUI കുറുക്കുവഴിക്ക് അതിൻ്റേതായ ഉപവിഭാഗം ഉള്ളതിനാൽ, നിങ്ങൾക്ക് അവിടെ ശൂന്യമായ മൂല്യമുള്ള URL പ്രോട്ടോക്കോൾ സ്ട്രിംഗ് പാരാമീറ്റർ ചേർക്കാൻ കഴിയും:

ഒരു ബ്രൗസറിൽ നിന്ന് SAP GUI സമാരംഭിക്കുന്നു

ഈ പ്രോട്ടോക്കോൾ ആരംഭിക്കുന്നു sapgui.exe പരാമീറ്റർ ഉപയോഗിച്ച് /ഷോർട്ട്കട്ട്, ഇതാണ് നമുക്ക് വേണ്ടത്:

ഒരു ബ്രൗസറിൽ നിന്ന് SAP GUI സമാരംഭിക്കുന്നു

ശരി, അല്ലെങ്കിൽ നമുക്ക് പൂർണ്ണമായും ഏകപക്ഷീയമായ ഒരു പ്രോട്ടോക്കോൾ ഉണ്ടാക്കണമെങ്കിൽ (ഉദാഹരണത്തിന്, sapshcut), തുടർന്ന് നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന 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""

ഇപ്പോൾ, ഞങ്ങൾ പ്രോട്ടോക്കോൾ സൂചിപ്പിക്കുന്ന ഒരു വെബ് പേജിൽ ഒരു ലിങ്ക് ഉണ്ടാക്കുകയാണെങ്കിൽ Sapgui.Shortcut.File സമാനമായ രീതിയിൽ:

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

ഇതുപോലുള്ള ഒരു വിൻഡോ നമ്മൾ കാണണം:

ഒരു ബ്രൗസറിൽ നിന്ന് SAP GUI സമാരംഭിക്കുന്നു

എല്ലാം മികച്ചതായി തോന്നുന്നു, പക്ഷേ നിങ്ങൾ "അനുവദിക്കുക" ബട്ടണിൽ ക്ലിക്കുചെയ്യുമ്പോൾ ഞങ്ങൾ കാണുന്നു:

ഒരു ബ്രൗസറിൽ നിന്ന് SAP GUI സമാരംഭിക്കുന്നു

ശ്ശോ, ബ്രൗസർ സ്‌പെയ്‌സ്ബാറിനെ %20 ആക്കി മാറ്റി. ശരി, മറ്റ് പ്രതീകങ്ങളും ഒരു ശതമാനം ചിഹ്നമുള്ള അവരുടെ സ്വന്തം സംഖ്യാ കോഡിലേക്ക് എൻകോഡ് ചെയ്യപ്പെടും. ഏറ്റവും അസുഖകരമായ കാര്യം, ബ്രൗസർ തലത്തിൽ ഇവിടെ ഒന്നും ചെയ്യാൻ കഴിയില്ല എന്നതാണ് (ഇവിടെ എല്ലാം സ്റ്റാൻഡേർഡ് അനുസരിച്ചാണ് ചെയ്യുന്നത്) - ബ്രൗസർ അത്തരം പ്രതീകങ്ങൾ ഇഷ്ടപ്പെടുന്നില്ല, കൂടാതെ വിൻഡോസ് കമാൻഡ് ഇൻ്റർപ്രെറ്റർ അത്തരം എൻകോഡ് ചെയ്ത മൂല്യങ്ങളുമായി പ്രവർത്തിക്കുന്നില്ല. കൂടാതെ ഒരു മൈനസ് കൂടി - പ്രോട്ടോക്കോൾ പേരും കോളണും ഉൾപ്പെടെ മുഴുവൻ സ്ട്രിംഗും ഒരു പാരാമീറ്ററായി കൈമാറുന്നു (sapgui.shortcut.file:). മാത്രമല്ല, അതേ ആണെങ്കിലും sapshcut.exe അതിനുള്ള ഒരു പാരാമീറ്ററല്ലാത്ത എല്ലാം നിരസിക്കാൻ കഴിയും ("-" ചിഹ്നത്തിൽ ആരംഭിക്കുന്നു, തുടർന്ന് പേര്, "=", മൂല്യം), അതായത്. എന്ന പോലെ ഒരു വരിsapgui.shortcut.file: -system=SID"ഇത് ഇപ്പോഴും പ്രവർത്തിക്കും, പിന്നെ ഇടമില്ലാതെ"sapgui.shortcut.file:-system=SID"ഇനി പ്രവർത്തിക്കില്ല.

തത്വത്തിൽ, യുആർഐ പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നതിന് രണ്ട് ഓപ്ഷനുകൾ ഉണ്ടെന്ന് ഇത് മാറുന്നു:

  1. പാരാമീറ്ററുകൾ ഇല്ലാതെ ഉപയോഗിക്കുന്നത്: ഞങ്ങളുടെ എല്ലാ സിസ്റ്റങ്ങൾക്കുമായി ഞങ്ങൾ ഒരു കൂട്ടം പ്രോട്ടോക്കോളുകൾ സൃഷ്ടിക്കുന്നു സിഡ്മണ്ട്, തരം AAA200, BBB200 ഇത്യാദി. നിങ്ങൾക്ക് ആവശ്യമുള്ള സിസ്റ്റം ആരംഭിക്കണമെങ്കിൽ, ഓപ്ഷൻ തികച്ചും പ്രവർത്തനക്ഷമമാണ്, പക്ഷേ ഞങ്ങളുടെ കാര്യത്തിൽ ഇത് അനുയോജ്യമല്ല, കാരണം കുറഞ്ഞത് നിങ്ങൾ ഉപയോക്തൃ ലോഗിൻ കൈമാറാൻ ആഗ്രഹിക്കുന്നു, പക്ഷേ ഇത് ഈ രീതിയിൽ ചെയ്യാൻ കഴിയില്ല.
  2. വിളിക്കാൻ ഒരു റാപ്പർ പ്രോഗ്രാം ഉപയോഗിക്കുന്നു sapshcut.exe അഥവാ sapgui.exe. ഈ പ്രോഗ്രാമിൻ്റെ സാരാംശം ലളിതമാണ് - വെബ് പ്രോട്ടോക്കോൾ വഴി ബ്രൗസർ അതിലേക്ക് കൈമാറുന്ന സ്ട്രിംഗ് എടുത്ത് വിൻഡോസ് സ്വീകരിക്കുന്ന പ്രാതിനിധ്യമാക്കി മാറ്റണം, അതായത്. എല്ലാ പ്രതീക കോഡുകളും പ്രതീകങ്ങളാക്കി മാറ്റുന്നു (ഒരുപക്ഷേ പാരാമീറ്ററുകൾ അനുസരിച്ച് സ്ട്രിംഗ് പാഴ്‌സ് ചെയ്‌തേക്കാം) കൂടാതെ ഒരു ഉറപ്പുള്ള ശരിയായ കമാൻഡ് ഉപയോഗിച്ച് SAP GUI-യെ ഇതിനകം വിളിക്കുന്നു. ഞങ്ങളുടെ കാര്യത്തിൽ, ഇത് പൂർണ്ണമായും അനുയോജ്യമല്ല (അതുകൊണ്ടാണ് ഞാൻ ഇത് പോലും എഴുതാത്തത്), കാരണം എല്ലാ ഉപയോക്തൃ പിസികളിലും പ്രോട്ടോക്കോൾ ചേർക്കുന്നത് ഞങ്ങൾക്ക് പര്യാപ്തമല്ല (ഒരു ഡൊമെയ്‌നിനുള്ളിൽ ഇത് ഇപ്പോഴും ശരിയാണ്, എന്നിരുന്നാലും ഇത് നല്ലതാണ്. ഈ സമ്പ്രദായം ഒഴിവാക്കുക), എന്നാൽ ഇവിടെ ഞങ്ങൾക്ക് പ്രോഗ്രാം പിസിയിൽ കൂടുതൽ സ്ഥാപിക്കേണ്ടതുണ്ട്, കൂടാതെ പിസിയിൽ സോഫ്റ്റ്‌വെയർ വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ അത് ഇല്ലാതാകുന്നില്ലെന്ന് നിരന്തരം ഉറപ്പാക്കുകയും വേണം.

ആ. ഈ ഓപ്‌ഷനും ഞങ്ങൾക്ക് അനുയോജ്യമല്ലാത്തതിനാൽ ഞങ്ങൾ തള്ളിക്കളയുന്നു.

ഈ ഘട്ടത്തിൽ, ബ്രൗസറിൽ നിന്ന് ആവശ്യമായ പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് SAP GUI സമാരംഭിക്കുക എന്ന ആശയത്തോട് വിട പറയേണ്ടിവരുമെന്ന് ഞാൻ ഇതിനകം ചിന്തിക്കാൻ തുടങ്ങിയിരുന്നു, എന്നാൽ SAP ലോഗനിൽ നിങ്ങൾക്ക് ഒരു കുറുക്കുവഴി ഉണ്ടാക്കാൻ കഴിയുമെന്ന ആശയം എനിക്ക് വന്നു. ഇത് നിങ്ങളുടെ ഡെസ്ക്ടോപ്പിലേക്ക് പകർത്തുക. ഞാൻ ഒരിക്കൽ ഈ രീതി ഉപയോഗിച്ചു, പക്ഷേ അതിനുമുമ്പ് ഞാൻ കുറുക്കുവഴി ഫയലിൽ പ്രത്യേകം നോക്കിയില്ല. ഈ കുറുക്കുവഴി വിപുലീകരണത്തോടുകൂടിയ ഒരു സാധാരണ ടെക്സ്റ്റ് ഫയലാണെന്ന് തെളിഞ്ഞു .സ്രവം. നിങ്ങൾ ഇത് വിൻഡോസിൽ പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, ഈ ഫയലിൽ വ്യക്തമാക്കിയിരിക്കുന്ന പാരാമീറ്ററുകൾക്കൊപ്പം SAP GUI സമാരംഭിക്കും. "ബിങ്കോ!"

ഈ ഫയലിൻ്റെ ഫോർമാറ്റ് ഏകദേശം ഇനിപ്പറയുന്നതാണ് (സ്റ്റാർട്ടപ്പിൽ ഒരു ഇടപാട് ആരംഭിച്ചേക്കാം, പക്ഷേ ഞാൻ അത് ഒഴിവാക്കി):

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

ആവശ്യമായ എല്ലാം തോന്നുന്നു: ഒരു സിസ്റ്റം ഐഡൻ്റിഫയർ, ഒരു ക്ലയൻ്റ്, ഒരു ഉപയോക്തൃനാമം കൂടാതെ ഒരു പാസ്‌വേഡ് പോലും. കൂടാതെ അധിക പാരാമീറ്ററുകൾ പോലും: തലക്കെട്ട് - വിൻഡോ ശീർഷകം, ഗൈസൈസ് - പ്രവർത്തിക്കുന്ന വിൻഡോയുടെ വലിപ്പം (പൂർണ്ണ സ്ക്രീൻ അല്ലെങ്കിൽ അല്ല) കൂടാതെ പുനരുപയോഗം — ഒരു പുതിയ വിൻഡോ തുറക്കേണ്ടതുണ്ടോ അല്ലെങ്കിൽ അതേ സിസ്റ്റത്തിൽ ഇതിനകം തുറന്നിരിക്കുന്ന ഒന്ന് ഉപയോഗിക്കേണ്ടതുണ്ടോ എന്ന്. എന്നാൽ ഒരു ന്യൂനൻസ് ഉടനടി ഉയർന്നുവന്നു - SAP ലോഗണിലെ പാസ്‌വേഡ് സജ്ജമാക്കാൻ കഴിയില്ല, ലൈൻ തടഞ്ഞു. സുരക്ഷാ കാരണങ്ങളാലാണ് ഇത് ചെയ്തതെന്ന് തെളിഞ്ഞു: ഇത് SAP ലോഗനിൽ സൃഷ്ടിച്ച എല്ലാ കുറുക്കുവഴികളും ഒരു ഫയലിൽ സംഭരിക്കുന്നു sapshortcut.ini (അടുത്തായി saplogon.ini വിൻഡോസ് ഉപയോക്തൃ പ്രൊഫൈലിൽ) കൂടാതെ, അവ എൻക്രിപ്റ്റ് ചെയ്തിട്ടുണ്ടെങ്കിലും, അവ വളരെ ശക്തമായി എൻക്രിപ്റ്റ് ചെയ്തിട്ടില്ല, വേണമെങ്കിൽ, അവ ഡീക്രിപ്റ്റ് ചെയ്യാവുന്നതാണ്. എന്നാൽ രജിസ്ട്രിയിലെ ഒരു പരാമീറ്ററിൻ്റെ മൂല്യം മാറ്റിക്കൊണ്ട് നിങ്ങൾക്ക് ഇത് പരിഹരിക്കാനാകും (സ്ഥിരസ്ഥിതി മൂല്യം 0):

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

SAP ലോഗണിലെ കുറുക്കുവഴി സൃഷ്ടിക്കൽ ഫോമിൽ പ്രവേശിക്കുന്നതിനുള്ള പാസ്‌വേഡ് ഫീൽഡ് ഇത് അൺലോക്ക് ചെയ്യുന്നു:

ഒരു ബ്രൗസറിൽ നിന്ന് SAP GUI സമാരംഭിക്കുന്നു

ഈ ഫീൽഡിൽ നിങ്ങൾ ഒരു പാസ്‌വേഡ് നൽകുമ്പോൾ, അത് അനുബന്ധ വരിയിൽ സ്ഥാപിക്കും
sapshortcut.ini, എന്നാൽ നിങ്ങൾ ഡെസ്ക്ടോപ്പിലേക്ക് ഒരു കുറുക്കുവഴി വലിച്ചിടുമ്പോൾ, അത് അവിടെ ദൃശ്യമാകില്ല - എന്നാൽ നിങ്ങൾക്ക് അത് സ്വമേധയാ അവിടെ ചേർക്കാം. പാസ്‌വേഡ് എൻക്രിപ്റ്റ് ചെയ്‌തിരിക്കുന്നു, 111111-ന് ഇത് ഇപ്രകാരമായിരിക്കും: PW_49B02219D1F6, 222222-ന് - PW_4AB3211AD2F5. എന്നാൽ ഈ പാസ്‌വേഡ് നിർദ്ദിഷ്‌ട പിസിയിൽ നിന്ന് സ്വതന്ത്രമായി ഒരു തരത്തിൽ എൻക്രിപ്റ്റ് ചെയ്‌തിരിക്കുന്നു എന്ന വസ്തുതയിൽ ഞങ്ങൾക്ക് കൂടുതൽ താൽപ്പര്യമുണ്ട്, കൂടാതെ ഞങ്ങൾ പാസ്‌വേഡ് പ്രാരംഭത്തിലേക്ക് പുനഃസജ്ജമാക്കുകയാണെങ്കിൽ, ഈ ഫീൽഡിൽ മുൻകൂട്ടി അറിയാവുന്ന ഒരു മൂല്യം ഉപയോഗിക്കാം. ശരി, ക്രമരഹിതമായി സൃഷ്‌ടിച്ച ഒരു പാസ്‌വേഡ് ഉപയോഗിക്കണമെങ്കിൽ, ഈ സൈഫറിൻ്റെ അൽഗോരിതം നമ്മൾ മനസ്സിലാക്കേണ്ടതുണ്ട്. എന്നാൽ നൽകിയിരിക്കുന്ന ഉദാഹരണങ്ങൾ വിലയിരുത്തിയാൽ, ഇത് ചെയ്യാൻ പ്രയാസമില്ല. വഴിയിൽ, SAP GUI 7.40-ൽ ഈ ഫീൽഡ് ഫോമിൽ നിന്ന് പൂർണ്ണമായും അപ്രത്യക്ഷമായി, പക്ഷേ പൂരിപ്പിച്ച പാസ്‌വേഡ് ഉള്ള ഒരു ഫയൽ ഇത് ശരിയായി സ്വീകരിക്കുന്നു.

അതായത്, ബ്രൗസറിൽ നിങ്ങൾ .sap വിപുലീകരണവും ആവശ്യമുള്ള ഫോർമാറ്റും ഉള്ള ഒരു ഫയലിലേക്കുള്ള ലിങ്കിൽ ക്ലിക്കുചെയ്യേണ്ടതുണ്ട് - കൂടാതെ ഇത് SAP GUI കുറുക്കുവഴി പോലെയുള്ള ഒരു ഫയലായി തുറക്കാൻ വാഗ്ദാനം ചെയ്യും (സ്വാഭാവികമായും ഒരു പിസിയിൽ). SAP GUI ഇൻസ്റ്റാൾ ചെയ്‌തത്) കൂടാതെ നിർദ്ദിഷ്ട പാരാമീറ്ററുകൾ ഉള്ള ഒരു SAP GUI വിൻഡോ തുറക്കും (എസ്ഐഡിയും ക്ലയൻ്റ് ജോഡിയും ഈ പിസിയിലെ SAP ലോഗിൻ ലിസ്റ്റിലാണെങ്കിൽ).

പക്ഷേ, ആരും മുൻകൂട്ടി ഫയലുകൾ സൃഷ്‌ടിക്കുകയും സൈറ്റിൽ സംഭരിക്കുകയും ചെയ്യില്ലെന്ന് വ്യക്തമാണ് - അവ ആവശ്യമായ പാരാമീറ്ററുകളെ അടിസ്ഥാനമാക്കി സൃഷ്ടിക്കണം. ഉദാഹരണത്തിന്, കുറുക്കുവഴികൾ സൃഷ്ടിക്കാൻ നിങ്ങൾക്ക് ഒരു PHP സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കാൻ കഴിയും (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";
?>

നിങ്ങൾ ഒരു ഉപയോക്തൃനാമവും പാസ്‌വേഡും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ലോഗിനും പാസ്‌വേഡും ആവശ്യപ്പെടുന്ന ഇനിപ്പറയുന്ന വിൻഡോ നിങ്ങൾക്ക് ലഭിക്കും:

ഒരു ബ്രൗസറിൽ നിന്ന് SAP GUI സമാരംഭിക്കുന്നു

നിങ്ങൾ ലോഗിൻ മാത്രം കടന്നാൽ, ലോഗിൻ ഫീൽഡ് പൂരിപ്പിക്കുകയും പാസ്‌വേഡ് ഫീൽഡ് ശൂന്യമാവുകയും ചെയ്യും. ഞങ്ങൾ ഉപയോക്താവിന് ഒരു ലോഗിനും പാസ്‌വേഡും നൽകിയാൽ, പിസിയിലെ ഉപയോക്താവിന് [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] വിഭാഗത്തിലെ രജിസ്ട്രിയിൽ EnablePassword കീ 0 ആയി സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, നമുക്ക് അത് തന്നെ ലഭിക്കും. ഈ കീ 1 ആയി സജ്ജീകരിക്കുകയും നാമവും പ്രാരംഭ പാസ്‌വേഡും നൽകുകയും ചെയ്താൽ മാത്രം, പുതിയ സ്ഥിരമായ പാസ്‌വേഡ് രണ്ടുതവണ നൽകാൻ സിസ്റ്റം ഉടൻ തന്നെ നിങ്ങളോട് ആവശ്യപ്പെടും. അതാണ് ഞങ്ങൾക്ക് ലഭിക്കേണ്ടിയിരുന്നത്.

തൽഫലമായി, മുകളിൽ പറഞ്ഞവയുടെയെല്ലാം ഒരു ചിത്രമായി ഞങ്ങൾ പരിഗണിക്കുന്ന ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ ഉണ്ട്:

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

അവസാന ഓപ്ഷൻ എനിക്ക് അനുയോജ്യമാണ്. എന്നാൽ SAP കുറുക്കുവഴികൾ സൃഷ്ടിക്കുന്നതിനുപകരം, നിങ്ങൾക്ക് ഉപയോഗിക്കാം, ഉദാഹരണത്തിന്, CMD ഫയലുകൾ സൃഷ്ടിക്കുന്നത്, ഒരു ബ്രൗസറിൽ നിന്ന് തുറക്കുമ്പോൾ, നിങ്ങൾക്കായി SAP GUI വിൻഡോ തുറക്കും. താഴെ ഒരു ഉദാഹരണം (sapguicmd.php) SAP ലോഗോൺ കോൺഫിഗർ ചെയ്യാതെ തന്നെ പൂർണ്ണ കണക്ഷൻ സ്ട്രിംഗ് ഉപയോഗിച്ച് SAP GUI നേരിട്ട് സമാരംഭിക്കുക:

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

അവലംബം: www.habr.com

ഒരു അഭിപ്രായം ചേർക്കുക