РЕЗЮМЕ Тази статия описва как да създавате SQL таблици за Microsoft Business Solutions – програми, базирани на Great Plains Dexterity.ПОВЕЧЕ ИНФОРМАЦИЯ Използвайте тези стъпки, за да създадете таблици SQL, които се съдържат в интегрирана програма на трета страна, написана с Dexterity. Тези стъпки също така обхващат как да SQL разрешение за тези таблици. Забележка Този метод замества метода amAutoGrant, описан в глава 41 на Ръководството за програмисти за подвижност, том 1.1. Създайте глобална процедура с име Стартиране, ако такава вече не съществува във вашата програма на трета страна. Този скрипт се изпълнява, когато стартирате "Чудесни равнини" и обикновено е мястото, където се регистрират превключвателите. 2. В скрипта "Стартиране" създайте превключвател на процедурата за Add_Successful_Login_Record, като използвате следния код.

{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 thenwarning "The Add_Successful_Login_Record trigger is not registered."; end if;

3. Регистрираният превключвател, създаден в стъпка 2, ще се обади на глобалната процедура gp_create_tables всеки път, когато потребителят влиза в Microsoft Dynamics GP. Тази процедура се изпълнява, когато първоначално се отвори фирма на Great Plains или когато потребителят или фирмата бъдат превключени.4. Създайте глобалната процедура с име gp_create_tables. Този скрипт ще създаде таблиците за програмата на трета страна в правилната SQL Server база данни. Той също така ще пресъздадете таблицата, генерирана от съхраненитепроцедури (zDP procs) и ще SQL разрешения за таблицата и процедурите. Използвайте следния код.

{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. Създадените в таблиците и таблиците съхранени процедури ще бъдат създадени в SQL Server и SQL ще бъдат дадени разрешения. Този скрипт ще се изпълнява само за потребителите на DYNSA или SA и след като таблиците са създадени, е добре да изпълните този скрипт отново.Тази статия е TechKnowledge Document ID:33429

TechKnowledge Content

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.