ÖSSZEFOGLALÁS: Ez a cikk azt ismerteti, hogy miként
SQL táblázatokat a Microsoft Business Solutions – Great Plains Dexterity programhoz.
TOVÁBBI
INFORMÁCIÓ: Afollowingsteps segítségével létrehozhat SQL, amelyek egy, a Dexteritásban írt integráló harmadik féltől származó
programban találhatók. Ezekkel a lépésekkel azt is ismertetjük, hogy SQL engedélyt ezekre a táblákra.
Megjegyzés: Ez a módszer a Dexterity Programozók útmutatójának 41. fejezetében (1. kötet) leírt amAutoGrant módszer helyére kerül.
1. Hozzon létre egy Indítás nevű globális eljárást, ha még nem létezik ilyen eljárás a
harmadik féltől származó programban. Ez a parancsfájl a Great Plains indítókor fut, és általában itt történik a triggerek regisztrálva.
2. Az
Indítási parancsfájlban hozzon létre egy eljárásindítót a Add_Successful_Login_Record az alábbi kód használatával.
{Name: Startup}
local integer l_result;
l_result = Trigger_RegisterProcedure(script Add_Successful_Login_Record, TRIGGER_AFTER_ORIGINAL, script gp_create_tables);
if l_result <> SY_NOERR then
warning "The Add_Successful_Login_Record trigger is not registered.";
end if;
3. A 2. lépésben létrehozott regisztrált eseményindító akkor hívja fel a globális gp_create_tables, amikor a felhasználó bejelentkezik a
Microsoft Dynamics GP alkalmazásba. Ezt az eljárást akkor futtatja a rendszer, ha a felhasználó vagy a vállalat váltása után először megnyitja az Great Plains vállalatot.
4. Hozza létre a Gp_create_tables
nevű gp_create_tables. Ez a parancsfájl létrehozza a harmadik féltől származó program tábláját a megfelelő adatbázisban SQL Server számára. Ezenkívül a létrehozott tároltprojekteket (zDP-SQL) is létrehoz, és engedélyeket ad a táblához és az eljárásokhoz. Használja az alábbi kódot.
{Name: gp_create_tables}
local boolean result,l_result,OUT_Access;
{if logged in as sa, let them create the tables}
if 'SQLSaUser' of globals then
OUT_Access = true;
else
{This else statement will work only on 8.0. If logged in as a user other than sa,
but they have table access permissions, let them create the tables}
if syUserInRole('User ID' of globals, ROLE_SYSADMIN) or (syUserIsDBO ('User ID' of globals, 'Intercompany ID' of globals)
and syUserIsDBO ('User ID' of globals, SQL_SYSTEM_DBNAME)) then
OUT_Access = true;
end if;
end if;
if 'SQL Server' of globals > 0 and OUT_Access then
{enable table creation mode}
result = Table_SetCreateMode(true);
{Do not display any table errors to the user.}
result = Table_DisableErrorChecks(true);
{accessing the table creates it, list all your tables here, make sure to close the tables when done}
get first table GPSetup; {Purchasing series table}
close table GPSetup;
get first table GPSetup2; {System series table}
close table GPSetup2; {now set permissions, call once for the table and once for the stored procs}
{GPSetup is a purchasing series table so that will be in the company dbo}
l_result = GrantAccess(physicalname(table GPSetup),false,"DYNGRP",'Intercompany ID' of globals)
of form 'SQL Maintenance';
l_result = GrantAccess(physicalname(table GPSetup),true,"DYNGRP",'Intercompany ID' of globals)
of form 'SQL Maintenance';
{GPSetup2 is a system series table so that will be in the DYNAMICS database}
l_result = GrantAccess(physicalname(table GPSetup2),false,"DYNGRP","DYNAMICS") of form 'SQL Maintenance';
l_result = GrantAccess(physicalname(table GPSetup2),true,"DYNGRP","DYNAMICS") of form 'SQL Maintenance';
{Turn off automatic table creation.}
result = Table_SetCreateMode(false);
{Turn table error reporting back on.}
result = Table_DisableErrorChecks(false);
end if;
5. A létrehozott táblákat és táblákat a rendszer a SQL Server fogja létrehozni, SQL engedélyeket. Ez a parancsfájl csak az SSA vagy a DYNSA felhasználóinak fog futni, és a táblák létrehozása után nem gond, hogy ismét futtatja ezt a parancsfájlt.
Ez a cikk a következő volt: TechKnowledge Document ID:33429