sage crm developers course using the api objects in asp pages (1)

21
Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Upload: dortha-page

Post on 22-Dec-2015

230 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Sage CRM Developers Course

Using the API Objects in ASP Pages (1)

Page 2: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Looking ahead to the classes

DP01: Introduction to the Development Partner Program

DP02: Entities and the Data Model (Part 1 of 2)

DP03: Entities and the Data Model (Part 2 of 2)

DP04: Implementing Screen Based Rules (Part 1 of 2)

DP05: Implementing Screen Based Rules (Part 2 of 2)

DP06: Screen and User Independent Business Rules

DP07: Workflow (Part 1 of 2)

DP08: Workflow (Part 2 of 2)

DP09: Using the API Objects in ASP Pages (Part 1 of 2)

DP10 : Using the API Objects in ASP Pages (Part 2 of 2)

DP11: Using the Component Manager

DP12: Programming for the Advanced Email Manager

DP13: Using the Web Services API

DP14: Using the Web Services API (Part 2 of 2)

DP15: Coding the Web Self Service COM API (Part 1 of 2)

DP16: Coding the Web Self Service COM API (Part 2 of 2)

DP17: Using the .NET API (Part 1 of 2)

DP18: Using the .NET API (Part 2 of 2)

Page 3: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Agenda

Using the API objects in ASP Pages

Linking to External Databases

Extending the Data Model

Basic Data Handling within an ASP Page

Listing Data

Editing Data

Adding Data

Page 4: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Creating a Page

Page 5: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Standard include files

sagecrm.js

reference in JavaScript-based ASP pages. This file sets the default language to JavaScript. (Default for Sage CRM v7.x)

sagecrmnolang.js

this file does not set the default language. (Default for Sage CRM v7.x)

accpaccrm.js

reference in JavaScript-based ASP pages. This file sets the default language to JavaScript.

accpacnolang.js

this file does not set the default language.

ewaress.js

reference in JavaScript-based, Self Service ASP pages.

Page 6: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

sagecrmnolang.js file

CRM = Server.CreateObject("eWare.CRM");

eMsg = CRM.Init(

Request.Querystring,

Request.Form,

Request.ServerVariables("HTTPS"),

Request.ServerVariables("SERVER_NAME"),

false,

Request.ServerVariables("HTTP_USER_AGENT"),

Accept);

Page 7: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Developer Include Files

Received when DP joins program.sagecrmdpp.js

Sagecrmnolangdpp.js

sagecrmdpp.vbs

accpaccrmdpp.js

accpaccrmnolangdpp.js

accpaccrmdpp.vbs

Include the appropriate files in your third-party products/installs. These files are supplied to CRM Development Partners only.

They will enable your product to run on the CRM installs that do not have the Enterprise Integration Server (EIS).

Products using the standard accpaccrm.js will not run on systems without EIS.

Page 8: Sage CRM Developers Course Using the API Objects in ASP Pages (1)
Page 9: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Connecting to an external Database

Making a permanent database connection

Making a 3rd Party table work like a CRM table

select * from custom_databases

Page 10: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

New Entities

Full Customization of new screens, lists and views

Full use of field and table level scripts

Governed by Security Territories

Workflow can be built

Automatic System Policing of insert by, update by and timestamps

Available for reporting and target lists

CREATE TABLE [dbo].[Project] (

[PROJ_ProjectId] [int] IDENTITY (1, 1) NOT NULL ,

[PROJ_PrimaryCompanyId] [int] NULL ,

[PROJ_PrimaryPersonId] [int] NULL ,

[PROJ_AssignedUserId] [int] NULL ,

[PROJ_ChannelId] [int] NULL ,

[PROJ_Description] [char] (40) NULL ,

[PROJ_CreatedBy] [int] NULL ,

[PROJ_CreatedDate] [datetime] NULL ,

[PROJ_UpdatedBy] [int] NULL ,

[PROJ_UpdatedDate] [datetime] NULL ,

[PROJ_TimeStamp] [datetime] NULL ,

[PROJ_Deleted] [tinyint] NULL ,

[PROJ_SegmentID] [int] NULL ,

[PROJ_SecTerr] [int] NULL ,

[PROJ_WorkflowId] [int] NULL

)

Page 11: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

ASP Example Screenflow

Page 12: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

New Entity Tasks

Create New Project TableMust have core columns as discussed in documentation

Link new project table to CRM.

Add additional columns to create relationships

Create screens– entityWebPicker– entityDetailBox– entitySearchBox– entityTopContent

Create a view that will exclude deleted entities.e.g. select * from project where proj_deleted is null

Create lists with appropriate hyperlinksentitylistentitygrid

If list calls proj_status "selection as gif" add folder and images

Create calls to asp pages from menusAdmin>Customization>System>findAdmin>Customisation>System>new

Create Tab bar for new entity(with same name as entity)Project

Create asp pagesprojectnew.aspprojectsummary.aspprojectfind.aspprojectlist.asp

Create workflowproject workflow

Page 13: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Naming Conventions

Suggested Naming Convention for new Entity Blocks

Screens– entityWebPicker– entityDetailBox– entitySearchBox– entityTopContent

Lists– entityGrid– entityList

ASP pages

entityFind.asp

entityNew.asp

entitySummary.asp

entityUser.asp

entityEntity.asp – (for listing children of new entity from

entities tab bar)

Page 14: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Typical Tasks

Create a List Page

Create an Insert Page

Create an Edit Page

Handling deletes

Create a Search Page

Page 15: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

List Page Structure

var myBlock = CRM.GetBlock('opportunitylist');

var myRecordId = CRM.GetContextInfo('company','comp_companyid');

var Arg = 'oppo_primarycompanyid='+myRecordId

CRM.AddContent(myBlock.Execute(Arg));

Response.Write(CRM.GetPage());

Page 16: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Edit Page Structure

var myBlock = CRM.GetBlock('OpportunityDetailBox');

var myRecordId = CRM.GetContextInfo('Opportunity','oppo_opportunityid');

//var myRecordId = Request.QueryString('oppo_opportunityid');

var myRecord = CRM.FindRecord('Opportunity','oppo_opportunityid='+myRecordId);

CRM.AddContent(myBlock.Execute(myRecord));

Response.Write(CRM.GetPage());

Page 17: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Adding Buttons

//Example to call an inbuilt CRM action e.g 130 is find company

var strFindCompanyButton = CRM.Button('search','search.gif', CRM.Url(130));

//Example to call a Custom ASP page

var strCallASPButton = CRM.Button('ASP','save.gif', CRM.Url('myPage.asp'));

//Example to show control of buttons display on screen using entity security

//The following button is only available for users with insert rights on company entity (see security)

var strNewCompanySecurityButton = CRM.Button('New','newcompany.gif', CRM.Url(1200),'COMPANY','INSERT');

//Example to show how to build a custom help button

var helpFile = "FI_SearchingForCompany.htm";

var strCustomHelpButton =CRM.Button("Help", "help.gif", "javascript:window.open('/"+sInstallName+"/help/EN/Main Menu/Default_CSH.htm#User/"+helpFile+"', 'HELPWIN','scrollbars=yes,toolbar=no,menubar=no,resizable=yes,top=200, width=600,height=400');");

re = /href/gi;

strCustomHelpButton = strCustomHelpButton.replace(re, "onclick");

myBlock.AddButton(strFindCompanyButton);

myBlock.AddButton(strCallASPButton);

myBlock.AddButton(strNewCompanySecurityButton);

myBlock.AddButton(strCustomHelpButton);

Page 18: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Add Page Structure

if(CRM.Mode ==View){ CRM.Mode = Edit;}var myBlock = CRM.GetBlock('opportunitydetailbox');var myRecord = CRM.CreateRecord('Opportunity');myRecord.oppo_stage= 'Lead';myRecord.oppo_status= 'In Progress';myRecord.oppo_primarycompanyid= CRM.GetContextInfo('Company','comp_companyid');myRecord.oppo_primarypersonid= CRM.GetContextInfo('person','pers_personid');CRM.AddContent(myBlock.Execute(myRecord));Response.Write(CRM.GetPage());if(CRM.Mode == Save){ Response.Redirect(CRM.URL('customoppolist.asp'))}

Page 19: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Q&AQ&A

Page 20: Sage CRM Developers Course Using the API Objects in ASP Pages (1)

Looking ahead to the classes

DP01: Introduction to the Development Partner Program

DP02: Entities and the Data Model (Part 1 of 2)

DP03: Entities and the Data Model (Part 2 of 2)

DP04: Implementing Screen Based Rules (Part 1 of 2)

DP05: Implementing Screen Based Rules (Part 2 of 2)

DP06: Screen and User Independent Business Rules

DP07: Workflow (Part 1 of 2)

DP08: Workflow (Part 2 of 2)

DP09: Using the API Objects in ASP Pages (Part 1 of 2)

DP10 : Using the API Objects in ASP Pages (Part 2 of 2)

DP11: Using the Component Manager

DP12: Programming for the Advanced Email Manager

DP13: Using the Web Services API

DP14: Using the Web Services API (Part 2 of 2)

DP15: Coding the Web Self Service COM API (Part 1 of 2)

DP16: Coding the Web Self Service COM API (Part 2 of 2)

DP17: Using the .NET API (Part 1 of 2)

DP18: Using the .NET API (Part 2 of 2)

Page 21: Sage CRM Developers Course Using the API Objects in ASP Pages (1)