Sage CRM 2017 R3 Developer Guide

Sage CRM 2017 R3 Developer Guide

Sage CRM 2017 R3 Developer Guide Updated: September 2017 © 2017, The Sage Group plc or its licensors. Sage, Sage logos, and Sage product and service names mentioned herein are the trademarks of The Sage Group plc or its licensors. All other trademarks are the property of their respective owners. Sage CRM - Developer Guide Page 2 of 387 Contents About this guide 9 Getting started 11 Sage CRM architecture 12 Web 12 Extensibility 13 .NET API 14 Security 15 Database 17 Creating an ASP page 18 Adding an ASP page to Sage CRM 20 Framesets 21 Creating custom queries 22 Creating a record set 22 Formatting a list 23 Manipulating record sets 24 Understanding context 24 Scripting in the Sage CRM interface 25 Using field-level scripting 25 Using table-level scripting 27 Example: Client-side validation 27 Example: Accessing user information 28 Example: Getting information about installed modules 30 Customization 30 Using ASP pages 31 Using customizable areas 31 Transferring customizations to another Sage CRM instance 33 Objects and blocks 51 Objects 52 Sage CRM - Developer Guide Page 3 of 387 Blocks 54 About blocks 55 Referencing block names 55 Creating a block 56 Customizing a block 56 Displaying a block 57 Lists 57 Creating a list 57 Customizing a list 58 Displaying a list using runblock 58 Displaying a list using an ASP page 58 Screens 59 Creating a screen 59 Customizing a screen 60 Displaying a screen using runblock and screen name 60 Displaying a screen using runblock with a custom block 61 Displaying a screen using an ASP page 61 Buttons 62 Creating button groups 62 Adding buttons to button groups 62 Displaying button groups 63 Restricting access to button groups 63 Classic Dashboard 63 Customizing the Classic Dashboard 64 Adding a List block to the Classic Dashboard 66 Adding a Content block to the Classic Dashboard 67 Adding a Chart block to the Classic Dashboard 68 Interactive Dashboard 68 Customizing the Interactive Dashboard 69 Adding a block to the Interactive Dashboard using the Contents field 69 Displaying an ASP page in a gadget 70 Adding a third-party gadget to the Interactive Dashboard 71 System menus 79 Modifying system menus 79 Creating a new menu button 80 Adding an external link to the main menu 81 Tabs 81 Creating a new tab group 81 Editing the main menu tab group 82 Adding a tab that links to an ASP page 82 Sage CRM - Developer Guide Page 4 of 387 Restricting access to a tab 83 Tab properties 84 Tab actions 85 Adding Help to custom pages 86 Database 89 Creating a new database table 90 Creating a new database connection 91 Creating a new table connection 92 Table- and entity-level scripts 92 Table-level scripts 93 Detached table-level scripts 93 Entity-level scripts 93 Creating a script 94 Viewing script logs 95 Disabling table-level scripts 96 Database customization examples 96 Creating a tab to display a list of invoices 96 Displaying an invoice from a list 99 Adding new data entry and maintenance screens 100 Using UpdateRecord in an entity-level script 105 Using InsertRecord in a table-level script 106 Using PostInsertRecord in a table-level script 107 Using UpdateRecord in a table-level script 108 Using DeleteRecord in a table-level script 109 Getting a list of field types used in the system 109 Graphics 111 Considerations for using graphics 112 Supported graphic file formats 112 Using external images 113 Changing image color 113 Clearing an image 113 Applying dithering, zooming, or transparency 114 Setting color, line width, and style 114 Setting a color 114 Setting line width 115 Setting line style 115 Filling solid shapes with color 116 Specifying a color 116 Sage CRM - Developer Guide Page 5 of 387 Loading an image 116 Specifying area to fill in 116 Specifying a predefined style 117 Changing current font 117 Selecting a font 117 Setting font size 118 Setting font color 118 Setting font style 118 Rotating text output 119 Using animation 119 Suppressing errors when processing an image 120 Code samples 120 Steps to add a progress bar 120 Steps to add a pipeline to show Opportunities for a Company 122 Implementing animation 124 Charts 127 About animated and interactive charts 128 Creating an Opportunity certainty widget 128 Creating an Opportunities and Cases widget 130 Creating an organization chart 132 Workflow 135 Changing workflow state 135 ASP page that changes workflow state 136 Moving records to another workflow 137 Identifying workflow context 138 Identifying workflow transitions 139 Scripting escalation rules in a component 139 Activating workflow for secondary or custom entities 141 Using ASP pages in workflow 142 Creating workflow on an external table 142 Using client side code in workflow 143 APIs 145 Using Web Services API 146 About Web Services 146 Prerequisites for using Web Services 147 Enabling Web Services for a user 147 Sage CRM - Developer Guide Page 6 of 387 Configuring Web Services 148 Required fields in quotes and orders 150 Using the WSDL file 152 Web Services methods 152 Web Services objects 154 Web Services selection fields 157 Sample SOAP requests and XML 160 C# code samples 165 Using SData API 167 About SData 167 Prerequisites for using SData 168 Managing SData access 168 HTTP request URL 170 SData authentication 172 Using .NET API 173 About .NET API 173 Using Sage CRM .NET SDK 174 Deploying custom .NET DLLs in Sage CRM 182 Debugging your .NET code 184 .NET code samples 187 Reference 195 ASP objects 196 AddressList object 198 Attachment object 200 AttachmentList object 203 CRM object 205 CRMBase object 214 CRMBlock object 219 CRMChartGraphicBlock object 226 CRMContainerBlock object 232 CRMContentBlock object 242 CRMEntryBlock object 243 CRMEntryGroupBlock object 258 CRMFileBlock object 262 CRMGraphicBlock object 265 CRMGridColBlock object 283 CRMListBlock object 288 CRMMarqueeBlock object 295 CRMMessageBlock object 299 Sage CRM - Developer Guide Page 7 of 387 CRMOrgGraphicBlock object 305 CRMPipelineGraphicBlock object 307 CRMQuery object 310 CRMRecord object 318 CRMSelfService object 326 CRMTargetLists object 330 CRMTargetListField object 338 CRMTargetListFields object 339 Email object 342 MailAddress object 348 MsgHandler object 349 Component Manager methods 351 Add methods 353 Copy methods 373 Create methods 375 Delete and Drop methods 377 Get methods 381 SearchAndReplace methods 383 Other methods 385 Sage CRM - Developer Guide Page 8 of 387 About this guide This guide is for Sage CRM implementers, developers, and system administrators. It provides information on how to customize and extend the functionality of Sage CRM by using the Extensibility Module (EM), also known as CRM Blocks. This guide assumes that you are familiar with the following: l Sage CRM System Administrator Guide or Help l SQL Server databases, tables, views, data relationships, and normalization l ASP, C#, HTML, JavaScript, JSON, Microsoft .NET Framework, SOAP, Web Services, and XML Step-by-step instructions in this guide assume that your default theme in Sage CRM is Contemporary. If you are using a different theme, you may need to use slightly different steps to access the Administration area in Sage CRM. Note: This help refers to Sage CRM but your system might have a different brand name, such as Sage 200 Sales and Marketing. The system works in the same way regardless of its name. The functionality that's available to you depends on the modules that you're licensed to use. Sage CRM - Developer Guide Page 9 of 387 Sage CRM - Developer Guide Page 10 of 387 Getting started l Sage CRM architecture l Creating an ASP page l Adding an ASP page to Sage CRM l Framesets l Creating custom queries l Understanding context l Scripting in the Sage CRM interface Sage CRM - Developer Guide Page 11 of 387 Sage CRM architecture l Web l Extensibility l .NET API l Security l Database l Customization Web l Web browser. Sage CRM has a thin client configuration, therefore users can access and work with Sage CRM by using just a web browser. This can be any web browser supported by Sage CRM. l Application server. The Sage CRM application server includes a number of components, which work together to coordinate the delivery of information and functionality to Sage CRM users. These components are used to implement user security, maintain user persistence, read and write information in the Sage CRM database, generate web pages from data, and process business rules and logic. The application server also runs the eWare.dll file, which is the Sage CRM dynamic link library. Web Server (IIS) communicates with Sage CRM via eWare.dll and Internet Server Application Programming Interface (ISAPI) technologies. eWare.dll and Web Server (IIS) must be on the same server. Sage CRM - Developer Guide Page 12 of 387 l Microsoft SQL Server. This server hosts the Sage CRM database that stores corporate data and metadata, which define the Sage CRM screen configurations, system customization, security, and business rules. l Mail server. You can connect the application server to this optional component to automate the sending of emails and SMS messages as part of the Sage CRM implementation. To customize the email functionality, you can use the CRMEmail object, and the CRMMsgHandler object and its child objects. You can also use the CRMMessageBlock object to send messages in SMS and email format. l Apache Tomcat Redirector. The redirector in Sage CRM is an ASP.NET Reverse Proxy, which is a 32-bit/64-bit ASP.NET web application configured in standard Apache format. This ASP.NET rewriter uses the HTTP protocol instead of binary socket and can be accessed directly in a browser, so you can easily check if Tomcat is working. For more information, see the Installation and Upgrade Help on the Sage CRM Help Center and articles on the Sage CRM Community.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    387 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us