Archivelink in CRM
Hi I want to upload a PDF document in CICO in BPVIEW .
I have created the document type as pdf and assigned to BUS2000112 .but this document type is not displaying in CIC0.
I saw the table /IXOS/DC_TCHIER but in this table my entries doesnot exist.
Do I need to create the node type and data source if so how to create .
Can you please help me
Hi,
Generally for archivelink in SAP CRM, you have to set ArchiveLink customizing (IMG->SAP WAS -> Application Server-> Basis Services-> ArchiveLink)
One of the setting which you need to make is EDIT LINKS (check the sub customizing from the IMG path above).
In WebUI for that specific business document (for example Business Activity), under tab Attachment, you can find special folder call ArchiveLink. Click Advance if you can not see the ArchiveLink folder.
For GUI, in tab Document, you can right click and select Archive Display On, then you see ArchiveLink.
Hope this helps.
Gun.
Similar Messages
-
Name and description of ArchiveLink Document in CRM 5.0
hi experts,
Does anyone know how to add a description and change a name of the archivelink document in CRM 5.0? Now I can add new archivelink document, but in field "Name" I have name of document class(f.e. DOC or JPG) and in field "Description" date when the file was added, field "Notes" is empty.
And maybe do u know is it possible do make a dokument type with more than one document class(in help I read this is impossible, but maybe there is some way to do this )?
Best regards,
MateuszUsing SAP ARCHIVELINK to improve ICWC document search Part 2
Using SAP ARCHIVELINK to improve ICWC document search Part 2
function module ARCHIV_CONNECTION_INSERT can also put in a description -
I am working in crm 5.0 . When I am trying to create a badi it always needs an enhancement spot. I do not have much idea about enhancement spot. Please give me step by step method for creating badi in crm 5.0. I know how to create badi in crm 4
Hi Sucheta,
To create BADI in CRM 5.0,
1. Go to SE 18, give the enhancement spot like following are standard ones:(its all about the purpose of creating a badi as its one of the enhancemen type so asks fro the spot where to enhance) with its techincal details:
Table Name ENH_EDT_LAYOUT
Field Name OBJECT1
Data Element ENH_ED_OBJ
The Standard enhancement Spots are:
/CEM/LRO_CUST_FIELDS EM/CREI interface: Customer extension fiel
/CRMS/CMG_PART_DETER Case Management: BAdI Partner Determinatio
/CRMS/CMG_REC_ATTR BAdI: Attributes for Links in Case Record
/CRMS/GET_PART_PPF_C BAdI: Partner Determination for Actions
/LIME/COLLECTOR BAdI to Fill Collections in LIME
/LIME/CUST BAdI for LIME Customizing
/LIME/DISPATCHER BAdI for Distribution of LIME Documents
/LIME/DOC_CHECK BAdI for Static Checks of Incoming Documen
/LIME/MASTER_DATA BAdI to Read Master Data for LIME
/LIME/QCI LIME QCI Converter
ARC_ADD_TABLE Extending the Structure Definition for Arc
ARC_CRM_ACT_ON BAdI for Archiving Object CRM_ACT_ON
ARC_CRM_COMP BAdI for Archiving Object CRM_COMP
ARC_CRM_GAG For Archiving Object CRM_GAG
ARC_CRM_GAP For Archiving Object CRM_GAP
ARC_CRM_IPMCON BAdI for Archiving Object CRM_IPMCON
ARC_CRM_IPMPUC BAdI for Archiving Object CRM_IPMPUC
ARC_CRM_IPMSAC BAdI for Archiving Object CRM_IPMSAC
ARC_CRM_LEAD BAdI for Archiving Object CRM_LEAD
ARC_CRM_LEAS For Archiving Object CRM_LEAS
ARC_CRM_OPPT BAdI for Archiving Object CRM_OPPT
ARC_CRM_SACONT BAdI for Archiving Object CRM_SACONT
ARC_CRM_SALDOC BAdI for Archiving Object CRM_SALDOC
ARC_CRM_SDBPBL Enhancement Spot for Archiving Object CRM_
ARC_CRM_SDBSOL For Archiving Object CRM_SDBSOL
ARC_CRM_SERORD BAdI for Archiving Object CRM_SERORD
ARC_CRM_SRCONT BAdI for Archiving Object CRM_SRCONT
ARC_CRM_SRVCON BAdI for Archiving Object CRM_SRVCON
ARC_CRM_SUR BAdI for Archiving Object CRM_SUR
ARC_CRM_UBBPOL BAdI for Archiving Object CRM_UBBPOL
ARC_SCMG Enhancements for Case Archiving
ARC_SRM_GSP Enhancements for Record Archiving
BADI_IBASE_IBARC IBase: Archiving
BADI_MI_SYNC_SERVICE BADI use in the Sync Service "MI_HOST"
BADI_MSA50 BAdis created for MSA5.0
BADI_MSE50 BAdis created for MSE 5.0
BADI_NUMBER_GET_NEXT
BADI_SORTER BAdI for sorting BAdI implementations
BADI_SORTER_TEST Test for BADI_SORTER_LAYER
BADI_TEST_SYNCSERVICE BADI_TEST_SYNCSERVICE
BADIS_SEU BAdIs for SEU
BDT_XCHNG_CREATE_SET Influence XCHNG Indicator during Creation
BIZC_CONFIGURATION Business Content: Configuration
BIZC_PRECONFIGURATION Business Content: Preconfiguration
BRF BRF-Releated BAdI Enhancements
BUPA_INITIAL_SCREEN
BUPA_LOCK Locking of a Business Partner
BUPA_MASK_LIST_ITEM SAP BP: Exit for masking the de-personalized fields of t
BUPA_OUTBOUND Business Partner Data Exchange (Outbound)
BUPA_PARTNER_CATEGORY Partner category for non update roles
BUPA_UOM Unit of Measure System for Each Partner/Address
BUPR_LOCK Locking of a Business Partner Relationship
CACL_MAIN01 BAdI for Required Field Check
CGPL_FETCH_RELATIONS Find the Linked Projects/Tasks Not Yet Loaded
CLEAR_DB_SAVE Clearing Tool: Exits of the (B)API Functions
COM_MERGE_DATA_SET Set Type-Specific Implementations
COM_PRODUCT_BSP_SPOT Enhancement Spot for PC UI Product Master
COM_PRODUCT_SE Spot for Searching for Product/Ind. Object Using Search
COM_SE_F4 SES: F4 Search Help integration
CRM_ATTR_PERS_CONTRO Editing Customer Attributes
CRM_BUPA_TFW_MEMORY TFW: Buffer Evaluation
CRM_CMG_ALT_CASE_APP Alternative Case Applications
CRM_CMG_BSP_EXT Case BSP Framework Extension SPOT
CRM_CMG_CASE_ACCESS Control for Processes in Case Management ("Internal Even
CRM_CMG_CASE_BOR_KEYS To get the external keys of the case linked BOs
CRM_CMG_NOTES_ACCESS Control for Processes of Case Notes
CRM_CONFIG_GRID_PRICE BAdI for Pricing of Matrix Products
CRM_CREI Entitlement Management Complaints and Returns Processing
CRM_ESELLING_SEARCH Enhancements in Internet Sales
CRM_ESERVICE_SEARCH Enhancements in E-Service
CRM_FINANCE_PAYMENT_SUM Read Payment Schedules for Lease
CRM_FS_BSP_MODEL_IL_FSBP Enhancement Spot for Business Partner PC-UI
CRM_FS_BSP_MODEL_IL_FSQ Enhancements for FS Quotation
CRM_IC_EXT_SPOT IC Web Client Rule Driven Interaction
CRM_IPM_AVAIL_CALC_GRP IPM: Calculate Rights Availability (Rights Groups)
CRM_IPM_AVAIL_ORD_CR_GRP IPM: Create an Order for Available Rights (Rights Groups
CRM_ISPS_GAP Grantor Managament Enhancements for Application
CRM_IST_PROD_FILTER Filtering of Items Determined in Bundle Explosion
CRM_IST_XI_CONF_MAPFROM_STATUS Define XI Status if XI Distribution is Available at the
CRM_LEAS_LINK_CREATE Generates Links Between Financing Items
CRM_MASTER_AGREEMENT BAdIs for Outline Agreement Selection
CRM_MI Investigation
CRM_PRODUCT_ATTRTEXT_SPOT Product Attribute Text Spot
CRM_UBB_PREBILLING Enhancements for UBB Prebilling
CWB_EXTERNAL
DD_ENQU_LISTENER Listener for Enqueues
EFG_PRINT_PARAMS Print Parameter
EFG_SPOOL_OUTPUT BAdI for Status of Spool Output Requests
ES_ENHCROSS_REBUILD Rebuild ENHCROSS
ES_ENHCROSS_UPDATE Entry for AFTER-IMPORT method for conversion of ENHCROSS
ES_SAPLOMCV_BADI BAdIs for Conversion Exit
EXTRACT_DATA Data selection for IPC
FKKCORR_EXP_9992 Correspondence: Example - Definition of Corresp. Type 99
FPB_PERS_GENERAL Personalization: General Enhancements for Framework
FSBP_ALIAS_BAPI_EXTENSION BAdIs for Aliases for Parameter Extension
FSBP_CREDT_STANDNG_BAPI_EXTEND BAPI Parameter Extensions for Credit Standing Data
HRTM00_TL_CALCULATION Talent Management: Enhancement Spot for Calculating Stat
IS_OIL_ACTIVE BAdI for Determining Whether Industry Business Solution
MDF_FND_CRT MDF Fund create
MDS_CTRL_ACT_CHECK Additional Checks for Maintenance View MDSV_CTRL_OPT_A
MDS_CTRL_PPO Post-Processing Office Call from the Controller
MISYNCSERVICE Badi for SyncService (MI)
OA_BADI_LINK BADI for ArchiveLink Links
PLM_AUDIT_SAP_TXT Audit Management: Platform-Specific Connection for Long
PLM_AUDIT_TEXT_ID Definition of Text Types for Each Audi
RCM_REC_WD
RCM_RECORD_BADI RCM: BAdIs for the Record
RCV_BP_ISOLATION Business Partner Decoupling
SCMA_TREE_STATUS
SFW_SWITCH_CHANGED Subsequent processing after switch cha
SOLAR_DOCUMENT_EXITS
SRM_DOC_ACT_AUTH_C SP Document -Enhancment spot for activ
SUSR_CUA_STATUS_SWITCH Status Change of the CUA Connection
WD_BADI Web Dynpro: BAdI Definitions
WF_BWP_DYN_COLUMN Set Dynamic Columns in Inbox
WF_BWP_OBJ_ATTRIBUTE Set Default Attributes for Objects in
WF_BWP_SELECT_FILTER Filter for Inbox Selection
YY_ORDER_SAVE Testing purpose
2.You can create also new enhancement spot (your Own) and create a BADI definition in the second Screen under the tab "Enhancement Spot Element Definition" for both ZZ as well as standard enahcement spots(in change Mode).
For More Information just go through the Link:
http://help.sap.com/saphelp_erp2005vp/helpdata/en/da/1c40425c459923e10000000a155106/frameset.htm
Hope this will help you
Regards,
Arjun
<b>Reward points if it helps</b> -
Connecting SAP CRM (or R/3) to FileNet
We are implementing a SAP CRM 5.0 system, and FileNet P8 is to be used as the document repository for SAP CRM.
We are using the FileNet adaptor, called ACSAP for SAP R/3, which allows us to connect to SAP CRM using the generic ArchiveLink functionality. However, we have found that the generic SAP ArchiveLink functionality is very restricted compared with the standard SAP CRM document management (e.g. versioning, creation from templates etc).
For example the documents tab on a SAP object, such as the business partner, allows users to import or create documents from new or from a template. The user will be prompted to enter metadata and this document will have a version associated with it and it can be checked in and checked out by the user. However we are currently using ArchiveLink which requires the user to click "activate ArchiveLink" to create the ArchiveLink folder. In order to save a document in ArchiveLink the user must then import or create a document in the ArchiveLink folder. Unfortunately most of the functionality mentioned previously, such as creation from a template and metadata capture, is not available when creating a document in the ArchiveLink folder. We have also found that due to the lack of metadata the document name is generically assigned and thus is not useful to the user for identification.
In addition it is not possible to force users to save their documents into ArchiveLink, therefore they are able to save them outside of the required document repository. We have been unable to find a good solution to this problem.
So we want to know if it is either possible to:
- Specify that SAP CRM document management use ArchiveLink as its standard document repository?
- Connect FileNet/ACSAP directly to SAP CRM document management without using ArchiveLink?
Has anyone had experience connecting SAP CRM (or SAP R/3) to FileNet, and is able to provide us with some insight?
Thanks
PhilipQuestion was recreated in DMS group. No answer as yet, but hoping to get answers from SAP soon.
-
Sending attachment form CRM system to ECC system
Hi friends,
I have a requirement.
when ever we create a sales order in CRM it automatically flows into ECC ... This is perfect sap provides this functinality..
Now my requiremnt is i need the attachement of this created sales order which is created in CRM should flow auomatically into ECC..
How can i get the attachment of ths sales order which i created...
Can any one let me know....
Regards
KumarThe attachement is a smartform or sapscript and those do not flow accross via middleware.
We use SAP archive link to write the document to CMS and then some programming is required to point the 2nd system (in your case ECC) to look at this document as we use the FM in the attached blog to write an entry to table TOA01.
SAP Network Blog: Using SAP ARCHIVELINK to improve ICWC document search Part 2
/people/glenn.michaels/blog/2008/10/28/using-sap-archivelink-to-improve-icwc-document-search-part-2 -
Hi all,
we are trying to set up the ArchiveLink for complaints object in our SAP CRM 4.0 system. We have customized ArchiveLink repository, object class and link between object BUS2000120 and object class (PDF document).
The problem is that we can't see any attachment or archivelink button when creating a complaint. Do we have to activate anything else?
No screen variants are used.
Thanks in advance.Hi printspat,
From what I gather, you have a payment method selected for your iTunes Store account which isn’t being accepted when setting up Family Sharing.
Take a look at the he article linked below provides, which provides a lot of great information about Family Sharing, and make sure you're trying to use a valid payment method for setting up Family Sharing.
Set up Family Sharing - Apple Support
One adult in the family—the family organizer—can set up Family Sharing for the group from their iOS device or Mac. When you set up Family Sharing, you'll be asked to confirm that you agree to pay for purchases initiated by the family members you invite and that you have a valid payment method on file. Valid payment methods for setting up Family Sharing include credit cards and debit cards.*
Cheers,
-Jason -
Filename is not attached with archivelink process
Hello Experts,
I installed a SAP Content Server with Max DB and I did the different customizing :
- creation of repository
- creation of documents type
- link of objects etc..
Today I can attach documents (CRM opportunities) without problem BUT I have two problems :
1) IN UI : When I want to attach document, I have to choose in "advance tab" an archivelink repository. By default if I do not this step the attached document will be store in database! Is it possible to do customizing to avoid this manual step (for storing in sap content server)?
2) As I said, we can attach documents without problem in sap content server and I can read it BUT the name of the document is the extension! So if I attach 3 documents, I will find 3 documents with WORD name! Could you please help me to find a solution to resolve this big issue?
Thanks a lot for your help
Regards
Hocine NAÏFor your first query
1) IN UI : When I want to attach document, I have to choose in "advance tab" an archivelink repository. By default if I do not this step the attached document will be store in database! Is it possible to do customizing to avoid this manual step (for storing in sap content server)?
You may default the storage category via either of the following approaches:
- Implement SAP Note 664102 or
- Via customizing. Go to SPRO > Cross-Application Components > DMS > General Data > Define Profile. Create a profile and based on your scenario,assign it either to a user or to a role. Under Determine definitions for applications you can define a storage-category to a particular workstation application.
Regards,
Pradeepkumar Haragoldavar -
Scanned Document's in CRM from FileNet?
Hi All,
We are implementing a SAP CRM 5.0 system, and FileNet P8 is to be used as the document repository for SAP CRM.We are using the FileNet adaptor, called ACSAP for SAP R/3, which allows us to connect to SAP CRM using the generic ArchiveLink functionality
We are working on interface between SAP CRM 5.0 and FileNet (with ACSAP connector).
Scenario:
The documents will be scanned,afterthat it will be stored in FileNet repository wih corresponding business object numbers like BP, Service Order and Activities. Ex. BP 100 - Doc. X in FileNet
We want to store the link in CRM as against corresponding object number i.e, linking to BP
Display it in CRM application i.e PCUI and as soon as user clicks on link it should open the document if authorised
=>We had discusion with our team we came up with 2 solution i.e. Use of Archive Link other one Attach an URL link pointing to document in FileNet repository.
Need the ans for the questions :
(1) How should we use Archive link concept ? what are config needed for it ?where should we plug in our Custom code ?
(2) Is there any USER EXIT or BADI getting triggered ?
Thanks in Advance for help.
Regards,
ArjunStill question is open.waiting.
-
Need guidance on program changes for SAP Archivelink 4.5
We are upgrading SAP Archivelink from 3.1 to 4.5. We need to determine what types of changes we need to make to our custom archiving and retrieval programs so they will work with SAP Archivelink 4.5. based on reading the SAP Archivelink 4.5 implementation guide, it appers the programs will need to be re-written in HTML. Has anyone worked on making changes to archiving programs used with SAP Archiveline 3.1 which will be used with 4.5?
Please let me know the major types of changes you needed to make, and the level of effort involved.
Thank you for your assistance.Hi Senthil,
Can you tell me which functional module your worked as "Analyst"?
Job market: New Dimensional products are picking up largely in US like SAP EWM, SAP EM, SAP TM, SAP CRM Sales and Service, SAP IS-Utilities, SAP IS-Retail etc.
SAP ECC - SAP SD, MM, FI and HR are always have market in US but competition little bit high if you go for an interview.
Simple way is to go to top 5 job portals in US, prepare excel sheet which areas have been posted in last 6 to 12 months. Take analytical report which one seems picked up and largely asked.
You will come to know at least 3 or 4 modules currently hot in US market. Also, talk to 5 to 10 outsourcing companies friendly then request them which one they are not getting candidates and which module is very niche in market. They will you guide to arrive one or two modules in the last.
Now you have narrow down to choose the option .
Best of Luck.
Regards
GGOPII -
BADI for changing fields during Creation of BP in CRM
Hello to everyone,
I need to find a BADI (or other way) to default several fields during BP creation in CRM (4.0 SR1 SP9). The fields I will like to set are TAX TYPE, TAX NUMBER, TAX CATEGORY, etc.. I have found the BADI BUPA_TAX_UPDATE but i dont see any suitable parameters (structures) to changes these fields. Please advice and thanks in advance.Hi
If you use function BUPA_NUMBERS_GET then your BP number will already be buffered and you can avoid a DB read. It may also be that the BP is not in the DB yet anyway.
You can only pass one GUID in at a time - loop through IT_CHANGED_INSTANCES into a variable of type BU_PARTNER_GUID and pass that into the function as input parameter IV_PARTNER_GUID.
Cheers
Dom -
Refresh CRM data in R/3 report
Hi All,
I've a report in R/3 where i get the Order Status of CRM through a RFC, but when i'm changing the status in CRM through crmd_order, when the report is open in R/3. When i press the refresh button, the status is not changed, it shows the previous status.
Below is the code, can any1 help me how to go about
CALL FUNCTION 'CRM0_READ_RFC_DEST'
EXPORTING
i_consumer = 'CRM'
i_download_type = '*'
i_objname = '*'
I_BAPICRMDH2 =
I_REM_LOGSYS =
TABLES
t_crmrfcpar = t_crmrfcpar
EXCEPTIONS
NO_ENTRY_FOUND = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF NOT t_crmrfcpar[] IS INITIAL.
READ TABLE t_crmrfcpar INDEX 1.
l_rfcdst = t_crmrfcpar-rfcdest.
ENDIF.
Call RFC
*loop at z_guid into lguid.
*endloop.
*refresh ZORDER_STATUS.
CALL FUNCTION 'ZCRM_HEADER_STATUS'
DESTINATION l_rfcdst
IMPORTING
ORDER_IDRET = l_guid
tables
ORD_STATUS = ZORDER_STATUS
Regards
Sanjuany body?
-
Installation of IPC AP 7.0 Jar is getting Failed when uploading in CRM
Hello Experts,
we did some changes in the previosly uploded version of IPC AP 7.0 customer user exit Jar file in eclipse.
While uploading the new modified jar through transaction /SAPCND/UE_DEV in CRM we are getting error :" installation of module <Jar file name > has failed ".
when we checked the logs in SM 53 we seen the below mentioned error:
Message: Exception of type com.sap.sql.log.OpenSQLException caught: Exception of type com.sap.sql.sqlparser.CommonSQLParserException: - statement "DELETE FROM "SVMCRT_MOD_TR_T" WHERE "MODULE_NAME" LIKE ? ESCAPE ^ (reason: Modification of ABAP tables is not permit ted)" is not supported
caught: - statement "DELETE FROM "SVMCRT_MOD_TR_T" WHERE "MODULE_NAME" LIKE ? ESCAPE ^ (reason: Modification of ABAP tables is not permitted)" is not supported
--> com.sap.sql.log.OpenSQLException: Exception of type com.sap.sql.sqlparser.CommonSQLParserException: - statement "DELETE FROM "SVMCRT_MOD_TR_T" WHERE "MODULE_NAME" LIKE ? ESCAPE '^' (reason: Modification of ABAP tables is n" is not suppor ted
caught: - statement "DELETE FROM "SVMCRT_MOD_TR_T" WHERE "MODULE_NAME" LIKE ? ESCAPE '^' (reason: Modification of ABAP tables is not permitted)" is not supported
at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Object;)Lcom/sap/sql/log/OpenSQLException;(Syslog.java:85)
at
if required i can post the complete stack trace.
any inputs/suggestions are most welcome.
Thanks & regards,
SiddharthHi Mark,
Yesterday after Posting the thread we found the same Note ,Issue occured because of JAVA write access was not enabled on the table ,After enabling it as mentioned in SAP Note, Jar file get successfully uploaded.
Thanks for your Help also.
Regards,
Siddharth -
Custom message required on log on pop-up in SAP CRM WEB UI
We required custom message to the log- on popup, right now the message is coming after we give the user ID and password "starting SAP CRM" instead of that
user required welcome message.., how can achieve this ?
Please reply as soon as possible.Hi Pankaj,
did you already check the guide in the CRM Wiki:
https://wiki.sdn.sap.com/wiki/display/CRM/WelcomeUserMessageinWeb+UI
Hope this answers your question.
Best Regards,
Michael -
Dynamic CRM 2013 Online how to execute Report, generate PDF and email
Dear All,
I am using Dynamic CRM 2013 online. For quote, I have workflow and Dialogue processes for review process. On approval, I want the system to generate a PDF of quote report, attach the PDF and email it to the Customer.
Better I would like, When approver, clicks on the approve button, the system should auto generate a PDF of quote report, attach the PDF and email it to the Customer, without any further input from the user. If its not possible, I may have to put button on
quote form.
I am using the attached code, but facing various issues.
1. Under prepare the SOAP Message coding part, I am not sure what should be the below URL for CRM 2013 Online?
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
2. What should be the emailid here? Is it Recepient Contact id(Guid) ?
var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
alert("emailid" + emailid.toString());
3. Using this code, not able to create Entity for "ActivityMimeAttachment", I am getting newEntity as undefined.
Below is the code I am using. Please check and help me out, where I am going wrong. Let me know if any better way to implement it. At present, I have put one button on quote form, on click event, below code will get executed.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
var Xrm;
if (window.opener) { Xrm = window.opener.Xrm; }
else if (window.parent) { Xrm = window.parent.Xrm; }
function getReportingSession() {
var reportName = "Quotation_Report"; //set this to the report you are trying to download
var reportId = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
var recordid = Xrm.Page.data.entity.getId();
// recordid = recordid.substring(1, 37); //getting rid of curly brackets
alert(recordid);
var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
var retrieveEntityReq = new XMLHttpRequest();
retrieveEntityReq.open("POST", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
retrieveEntityReq.send("id=%7B" + reportId + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" + reportName + "&isScheduledReport=false");
var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
var ret = new Array();
ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
x = retrieveEntityReq.responseText.indexOf("ControlID=");
ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
return ret;
function createEntity(ent, entName, upd) {
var jsonEntity = JSON.stringify(ent);
var createEntityReq = new XMLHttpRequest();
var ODataPath = Xrm.Page.context.getServerUrl() + "XRMServices/2011/OrganizationData.svc";
createEntityReq.open("POST", ODataPath + "/" + entName + "Set" + upd, false);
createEntityReq.setRequestHeader("Accept", "application/json");
createEntityReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
createEntityReq.send(jsonEntity);
var newEntity = JSON.parse(createEntityReq.responseText).d;
alert("new entity" + newEntity);
return newEntity;
function createAttachment() {
var params = getReportingSession();
var recordid = Xrm.Page.data.entity.getId();
alert("recordid " + recordid);
var orgName = Xrm.Page.context.getOrgUniqueName();
var userID = Xrm.Page.context.getUserId();
//create email record
// Prepare the SOAP message.
var xml = "<?xml version='1.0' encoding='utf-8'?>" +"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" +
" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
" xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
"<soap:Header>" +
"</soap:Header>" +
"<soap:Body>" +
"<Create xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" +
"<entity xsi:type='email'>" +
"<regardingobjectid type='quote'>" + recordid + "</regardingobjectid>" +
"<subject>" + "Email with Attachment4" + "</subject>" +
"</entity>" +
"</Create>" +
"</soap:Body>" +
"</soap:Envelope>";
// Prepare the xmlHttpObject and send the request.
var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xHReq.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Create");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml);
// Capture the result
var resultXml = xHReq.responseXML;
// alert("resultXml " + resultXml);
// Check for errors.
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0) {
alert("ERROR");
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
alert("emailid" + emailid.toString());
//var emailid = userID;
var post = Object();
post.Body = encodePdf(params);
var email = new Array();
email[0] =new Object();
email[0].id = emailid;
email[0].entityType ='email';
post.Subject ="File Attachment";
post.AttachmentNumber = 1;
post.FileName ="Report.pdf";
post.MimeType ="application/pdf";
post.ObjectId = Object();
post.ObjectId.LogicalName ="email";
post.ObjectId.Id = email[0].id;
post.ObjectTypeCode ="email";
alert(post.ObjectId.Id);
createEntity(post,"ActivityMimeAttachment", "");
alert("created successfully");
email.Subject = "Your Order";
//Set The current order as the Regarding object
email.RegardingObjectId = {
Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
//Create Email Activity
SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
// Email Call Back function
function EmailCallBack(result) {
email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
var activityPartyFrom = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyFrom.PartyId = {
Id: customerId, // id of entity you want to associate this activity with.
LogicalName: "contact"
// Set the "activity" of the ActivityParty
activityPartyFrom.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity).
activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
// Create the from ActivityParty for the email
SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
var activityPartyTo = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyTo.PartyId = {
Id: ownerId, // id of entity you want to associate this activity with.
LogicalName: "systemuser"
// Set the "activity" of the ActivityParty
activityPartyTo.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity). activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
// Create the from ActivityParty
SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
//ActivityParty From Callback
function ActivityPartyFromCallBack(result) {
//ActivityParty To Callback
function ActivityPartyToCallBack(result) {
var StringMaker = function () {
this.parts = [];
this.length = 0;
this.append = function (s) {
this.parts.push(s);
this.length += s.length;
this.prepend = function (s) {
this.parts.unshift(s);
this.length += s.length;
this.toString = function () {
return this.parts.join('');
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
var output = new StringMaker();
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
while (i < input.length) {
chr1 = input[i++];
chr2 = input[i++];
chr3 = input[i++];
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
else if (isNaN(chr3)) {
enc4 = 64;
output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
return output.toString();
var bdy = new Array();
var bdyLen = 0;
function concat2Bdy(x) {
bdy[bdyLen] = x;
bdyLen++;
function encodePdf(params) {
bdy = new Array();
bdyLen = 0;
var retrieveEntityReq = new XMLHttpRequest();
var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] + "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] + "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
retrieveEntityReq.open("GET", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.send();
BinaryToArray(retrieveEntityReq.responseBody);
return encode64(bdy);
</SCRIPT>
<SCRIPT type=text/vbscript>
Function BinaryToArray(Binary)
Dim i
ReDim byteArray(LenB(Binary))
For i = 1 To LenB(Binary)
byteArray(i-1) = AscB(MidB(Binary, i, 1))
concat2Bdy(AscB(MidB(Binary, i, 1)))
Next
BinaryToArray = byteArray
End Function
</SCRIPT>
</head>
<body>
<input type="button" onclick="createAttachment();" value="Attach Report" />
</body>
</html>
Thanks. and waiting for your valuable comments.
- MittalHello,
Yes, I was able to make my code working as below. Tested on CRM online 2013.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
if (typeof (SDK) == "undefined")
{ SDK = { __namespace: true }; }
SDK.JScriptRESTDataOperations = {
_context: function () {
if (typeof GetGlobalContext != "undefined")
{ return GetGlobalContext(); }
else {
if (typeof Xrm != "undefined") {
return Xrm.Page.context;
else { return new Error("Context is not available."); }
_getServerUrl: function () {
var serverUrl = this._context().getServerUrl()
if (serverUrl.match(/\/$/)) {
serverUrl = serverUrl.substring(0, serverUrl.length - 1);
return serverUrl;
_ODataPath: function () {
return this._getServerUrl() + "/XRMServices/2011/OrganizationData.svc/";
_errorHandler: function (req) {
return new Error("Error : " +
req.status + ": " +
req.statusText + ": " +
JSON.parse(req.responseText).error.message.value);
_dateReviver: function (key, value) {
var a;
if (typeof value === 'string') {
a = /Date\(([-+]?\d+)\)/.exec(value);
if (a) {
return new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10));
return value;
Create: function (object, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 201) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send(JSON.stringify(object));
Retrieve: function (id, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("GET", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 200) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
Update: function (id, object, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("X-HTTP-Method", "MERGE");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 204 || this.status == 1223) {
successCallback();
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send(JSON.stringify(object));
Delete: function (id, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("X-HTTP-Method", "DELETE");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 204 || this.status == 1223) {
successCallback();
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
RetrieveMultiple: function (type, filter, successCallback, errorCallback) {
if (filter != null) {
filter = "?" + filter;
else { filter = ""; }
var req = new XMLHttpRequest();
req.open("GET", this._ODataPath() + type + "Set" + filter, true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 200) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d.results);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
__namespace: true
</script>
<script type="text/javascript">
//Create Email and link it with Order as Regarding field
var Xrm;
var email = new Object();
var ownerID = "";
var CustomerId = "";
if (window.opener) { Xrm = window.opener.Xrm; }
else if (window.parent) { Xrm = window.parent.Xrm; }
//Get ownerid who send email of quotation to customer
function GetOwnerID() {
var owner = Xrm.Page.getAttribute("ownerid").getValue();
ownerID = owner[0].id;
var ownerName = owner[0].name;
var entityType = owner[0].entityType;
GetToEmailGUID();
//Get customerid who receive email of quotation from owner
function GetToEmailGUID() {
var Customer = Xrm.Page.getAttribute('customerid').getValue();
CustomerId = Customer[0].id;
var CustomerName = Customer[0].name;
var entityType = Customer[0].entityType;
//if CustomerId is type of "Account" then get Primary Contact id of that account
if (entityType == "account") {
var contact = Xrm.Page.getAttribute("customerid").getValue();
if (contact === null) return;
var serverUrl = Xrm.Page.context.getClientUrl();
var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'" + contact[0].id + "')?$select=PrimaryContactId";
var req = new XMLHttpRequest();
req.open("GET", oDataSelect, false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json;charset=utf-8");
req.onreadystatechange = function () {
if (req.readyState === 4) {
if (req.status === 200) {
var retrieved = JSON.parse(req.responseText).d;
CustomerId = retrieved.PrimaryContactId.Id;
else {
alert(this.statusText);
req.send();
function CreateEmail() {
GetOwnerID();
email.Subject = "Email with Report Attachment";
//Set The current order as the Regarding object
email.RegardingObjectId = {
Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
//Create Email Activity
SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
// Email Call Back function
function EmailCallBack(result) {
email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
var activityPartyFrom = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyFrom.PartyId = {
Id: CustomerId, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
LogicalName: "contact"
// Set the "activity" of the ActivityParty
activityPartyFrom.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity).
activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
// Create the from ActivityParty for the email
SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
var activityPartyTo = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyTo.PartyId = {
Id: ownerID, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
LogicalName: "systemuser"
// Set the "activity" of the ActivityParty
activityPartyTo.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity).
activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
// Create the from ActivityParty
SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
//ActivityParty From Callback
function ActivityPartyFromCallBack(result) {
//ActivityParty To Callback
function ActivityPartyToCallBack(result) {
GetReportId('Quotation');
//Create attachment for the created email
function CreateEmailAttachment() {
//get reporting session and use the params to convert a report in PDF
var params = getReportingSession();
//Email attachment parameters
var activitymimeattachment = Object();
activitymimeattachment.ObjectId = Object();
activitymimeattachment.ObjectId.LogicalName = "email";
activitymimeattachment.ObjectId.Id = email.ActivityId;
activitymimeattachment.ObjectTypeCode = "email",
activitymimeattachment.Subject = "File Attachment";
activitymimeattachment.Body = encodePdf(params);
activitymimeattachment.FileName = "Report.pdf";
activitymimeattachment.MimeType = "application/pdf";
//Attachment call
SDK.JScriptRESTDataOperations.Create(activitymimeattachment, "ActivityMimeAttachment", ActivityMimeAttachmentCallBack, function (error) { alert(error.message); });
//ActivityMimeAttachment CallBack function
function ActivityMimeAttachmentCallBack(result) {
var features = "location=no,menubar=no,status=no,toolbar=no,resizable=yes";
var width = "800px";
var height = "600px";
window.open(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", features);
// To open window which works in outlook and IE both
//openStdWin(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", width, height, features);
//This method will get the reportId based on a report name that will be used in getReportingSession() function
function GetReportId(reportName) {
var oDataSetName = "ReportSet";
var columns = "ReportId";
var filter = "Name eq '" + reportName + "'";
retrieveMultiple(oDataSetName, columns, filter, onSuccess);
function retrieveMultiple(odataSetName, select, filter, successCallback) {
var serverUrl = Xrm.Page.context.getServerUrl();
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?";
if (select) {
odataUri += "$select=" + select + "&";
if (filter) {
odataUri += "$filter=" + filter;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: odataUri,
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept", "application/json");
success: function (data) {
if (successCallback) {
if (data && data.d && data.d.results) {
successCallback(data.d.results);
else if (data && data.d) {
successCallback(data.d);
else {
successCallback(data);
error: function (XmlHttpRequest, errorThrown) {
if (XmlHttpRequest && XmlHttpRequest.responseText) {
alert("Error while retrieval ; Error – " + XmlHttpRequest.responseText);
function onSuccess(data) {
reportId = data[0].ReportId.replace('{', ").replace('}', ");
CreateEmailAttachment(); // Create Email Attachment
//Gets the report contents
function getReportingSession() {
var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
var retrieveEntityReq = new XMLHttpRequest();
var Id = Xrm.Page.data.entity.getId();
var quotationGUID = Id.replace('{', ""); //set this to selected quotation GUID
quotationGUID = quotationGUID.replace('}', "");
var reportName = "Quotation"; //set this to the report you are trying to download
var reportID = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
var rptPathString = ""; //set this to the CRMF_Filtered parameter
var strParameterXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'><entity name='quote'><all-attributes /><filter type='and'><condition attribute='quoteid' operator='eq' uitype='quote' value='" + quotationGUID + "' /> </filter></entity></fetch>";
retrieveEntityReq.open("POST", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
rptPathString = "id=%7B" + reportID + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" +
reportName + "&isScheduledReport=false&p:CRMAF_Filteredquote=" + strParameterXML;
//remove the part starting from &p:salesorderid if your report has no parameters
retrieveEntityReq.send(rptPathString);
var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
var ret = new Array();
ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
x = retrieveEntityReq.responseText.indexOf("ControlID=");
ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
return ret;
var bdy = new Array();
var bdyLen = 0;
function concat2Bdy(x) {
bdy[bdyLen] = x;
bdyLen++;
function encodePdf(params) {
bdy = new Array();
bdyLen = 0;
var retrieveEntityReq = new XMLHttpRequest();
var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] +
"&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] +
"&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
retrieveEntityReq.open("GET", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.send();
BinaryToArray(retrieveEntityReq.responseBody);
return encode64(bdy);
var StringMaker = function () {
this.parts = [];
this.length = 0;
this.append = function (s) {
this.parts.push(s);
this.length += s.length;
this.prepend = function (s) {
this.parts.unshift(s);
this.length += s.length;
this.toString = function () {
return this.parts.join('');
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
var output = new StringMaker();
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
while (i < input.length) {
chr1 = input[i++];
chr2 = input[i++];
chr3 = input[i++];
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
return output.toString();
</script>
<script type="text/vbscript">
Function BinaryToArray(Binary)
Dim i
ReDim byteArray(LenB(Binary))
For i = 1 To LenB(Binary)
byteArray(i-1) = AscB(MidB(Binary, i, 1))
concat2Bdy(AscB(MidB(Binary, i, 1)))
Next
BinaryToArray = byteArray
End Function
</script>
</head>
<body>
<input type="button" onclick="CreateEmail();" value="Attach Report" />
</body>
</html>
Thank you,
Mittal. -
Hi All,
I want to create an Order in CRM with reference to the Standard Order (which is created in ECC and replicated from ECC to CRM).
When I open the Transaction (which is created in ECC and replicated from ECC to CRM).
in CRM and clikc on follow up I am not able to create the follow up transaction.
The follow up transaction is in display mode.
Can anybody give me inputs in this regard? where is wrong
Will award the points for the helpful answer.
Regards,
-Rahul.Hi Shalini,
The document is replicated from ECC to CRM without any errors.
For this document I just want to create follow up transaction in CRM.(I dont want to change the document in CRM)
The follow up transaction is in display mode. this is my problem.
Hi Rekha:
I have done following setting in CRM to create follow up transaction in CRM for the document which is replicated from ECC to CRM.
1) Defined the Copying Control for Transaction type
2) Defined Copying Control for Item categories
3) Defined Item category determination when copying
Thanks in advance,
Regards,
-Rahul.
Maybe you are looking for
-
Okay since last apple software update my safari will not open youtube,yahoo or google
Okay since last apple software update my safari will not open youtube,yahoo or google, an error message comes up saying safari cannot connect to the server. Can anyone help me with this please?
-
How can I populate a drop down list reading elements from a text file in JSP/servlet
-
Simple question(?): How to read parameters in JSP?
I am trying to get a parameter passed to my JSP script through an URL like this: http://www.somewhere.com/cgi-bin/myscript.jsp?variable=test How can I read the context of the variable "variable" within the JSP code? The content must be placed in a st
-
Why can't I find apps like Instagram or snapchat on the AppStore?
Pls help me
-
I've plugged my new Zen V Plus into my USB port, and the battery charging indicator has been flashing as expected. However, 9 hours later the battery indicator is only showing about a quarter charge. Any ideas?Thanks?Stompa?