Testing of Broadcast email functionality in Peoplesoft CRM Online Marketing

Hi,
I am trying to create a marketing dialog in Peoplesoft CRM.It has a date time trigger event which is in turn associated with a broadcast mail. I tried running it for a test audience by clicking "Test" button. However, the email is not getting generated and it does not show any error on the page.The status of the dialog gets changed from "Design" to "In Test" also. Is there anyway to find out the reason why the email is not getting sent?I checked in the email job report and the trigger shows a status of "Queing". Also, I read somewhere about mailcasters. Is setting it up mandatory for broadcast emails?The dialog execution server has already been setup and is running successfully.

i guess you are trying to use ERMS(email reponse management system in CRM) either support desk or help desk.
u need to configure a whole setup in order to make this functionality work.
please make clear whether this is the one you are trying to achieve.
ERMS functionality in short: it has all mail box servers in place. once the mail comes from a user to a mail box, based on content and information the email is routed back to respective mailing list. the person picks the mail and replies back to the mail box which routes back to the user requested.
it uses process schedulers,IB gateways, nodes,SMTP servers to do the job.
Thnks!

Similar Messages

  • Sending Emails in PeopleSoft CRM

    Hi All,
    I am using below Method for Sending Emails in PeopleSoft CRM.
    Now i need to add some dynamic info like instead of Dear user in Mail Text,i need to
    write Dear UserName. Concatenation is an option but for that purpose i have to loop for each user.
    Is there any other Method ?
    &MAIL_FLAGS = 0;
    &MAIL_TO = " User1@email , User2@remail , User3@email";
    &MAIL_CC = "";
    &MAIL_BCC = "";
    &MAIL_SUBJECT = "Thanks for your Interest";
    &MAIL_TEXT = "Dear User, Thanks .....
    &MAIL_FILES = "";
    &MAIL_TITLES = "";
    &MAIL_SENDER = " myEmail@email";
    &RET = SendMail(&MAIL_FLAGS, &MAIL_TO, &MAIL_CC, &MAIL_BCC, &MAIL_SUBJECT, &MAIL_TEXT, &MAIL_FILES, &MAIL_TITLES, &MAIL_SENDER);
    Thanks in Advance

    So you're sending one email to three users? Wouldn't it be handier to loop for every email? That way you get a separate mail per user. If you're sending an email to 3 users as in the example then I would just retrieve the name for each user from the DB using a simple SQLExec.

  • Configuring and testing email functionality for GP

    Hi,
    May I know what are the steps that i need to do in order to send email out to users in Guided Procedures? What are the configurations that need to be done?
    And after configuring it, is there any way to test if the email configurations is set properly and is working fine?
    Thanks in advance.
    Regards,
    Cindy

    Hi Cindy,
    Check this <a href="http://help.sap.com/saphelp_nw04s/helpdata/en/e0/e3934249c30c31e10000000a1550b0/frameset.htm">link</a>
    Focus on: <b>smtp.server</b> and <b>smtp.service_user_mail</b> parameters,
    For testing create a "send notification" CO and test it.
    Hope this Help
    Regards
    Luca

  • Steps for Email integration in sap crm system?

    Hi Experts,
    Please guide me the steps for email integration so that the emails are in syn with the WEB UI Interaction centre.Settings at the backend GUI are already defined.Actually in my case the Development system is not integrated with Email sync in WEB UI.I need to test the email functionality in Development system as steps I have followed are as below:
    1)TCode :- SBWP,then I have created a mail & send it to email address which is defined in the SO28
    2)TCode :- SOST,there I have clicked on my test mail,select it & click on execute button,green light appears & shows the message that the email is successfully forwarded.
    Now when I open Web Ui,select my business role & then I go to inbox in the Navigation Bar,select email & click on search.Then it does not appear anything & shows search result zero.
    Kindly suggest me the steps so that I can see my test email in Dev system Web Ui business role .
    Thanks
    Warm Regards
    Vineet Joshi

    Hi Prashant,
    Thanks for your response. I want steps to configure communication channels like e-mail & fax to facilitate receipt of invoice from vendors, sending of PO to vendors, cheques, payment advices to name a few. Please let me know the detailed configuration steps for the same and also do we need to instal any tool to facilitate this process.
    Thanks
    Best regards,
    Bhaskar
    Edited by: Bhaskar Umashankar on Nov 25, 2008 4:08 AM
    Edited by: Bhaskar Umashankar on Nov 25, 2008 4:08 AM

  • CRM ONLINE 2013: On Approval Of Quotation, Run Report, Generate PDF and Send an Email With PDF as attachment

    Hi,
    I am using CRM ONLINE 2013.
    How to automate below process?
    1. On Approval Of Quotation, Run Report.
    2. Generate PDF.
    3. Send an Email With PDF as attachment.
    As i have gone through many forums for this topic, but creating a plugin code for generating Report PDF is not possible in CRM ONLINE.
    So, What is the alternate way to do this..?
    Thanks.

    This is my entire code mentioned below:-
    <!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" 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('ABM_Infotech_SalesQuote');
            //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 = "Report1.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 = "ABM_Infotech_SalesQuote"; //set this to the report you are trying to download
                var reportID = "751089AA-74B8-E211-B52F-D8D3855B253B"; //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:ABMFilteredQuote=" + 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>

  • Creating a target group based on the BP email address only in CRM

    Hi there,
    I am currently trying to create a target group based on the business partner email address only.
    I have a list of over 1000 email addresses - these email addresses equate to a BP in our CRM system, however I do not have a list of the equivalent business partner numbers, all I have to work on are the email addresses.  With these 1000 BP email addresses I need to update the marketing attributes of each of these 1000 BP records in CRM.
    What I need is a method to find the 1000 BP numbers based on the email addresses and then use the marketing expert tool (tx. CRMD_MKT_TOOLS) to change the marketing attributes on all of the 1000 BPs.
    The issue I am having is how can I find the list of BP numbers just based on the BP email address, I tried creating an infoset based on table BUT000, BUT020 and ADR6 but I after creating attribute list & data source for this I am stuck on what to do next. In the attribute list the selection criteria does not allow me to import a file for the selection range.  I can only enter a value but I have 1000 email addresses and cannot possibly email them manually in the filter for the attribute list.   I also looked at imported a file into the target group but I do not have any BP numbers so this will not work.
    Does anyone know a method where I can create a target group based on the email addresses only without having to do any code?
    Any help would be most appreciated.
    Kind regard
    JoJo

    Hi JoJo ,
    The below report will return you BP GUID from emails that is stored in a single column .xls file and assign the BP to a target group.
    REPORT  zexcel.
    * G L O B A L D A T A D E C L A R A T I O N
    TYPE-POOLS : ole2.
    TYPES : BEGIN OF typ_xl_line,
    email TYPE ad_smtpadr,
    END OF typ_xl_line.
    TYPES : typ_xl_tab TYPE TABLE OF typ_xl_line.
    DATA : t_data TYPE typ_xl_tab,
           lt_bu_guid TYPE TABLE OF bu_partner_guid,
           ls_bu_guid TYPE  bu_partner_guid,
           lt_guids TYPE TABLE OF bapi1185_bp,
           ls_guids TYPE  bapi1185_bp,
           lt_return TYPE bapiret2_t.
    * S E L E C T I O N S C R E E N L A Y O U T
    PARAMETERS : p_xfile TYPE localfile,
                  p_tgguid TYPE bapi1185_key .
    * E V E N T - A T S E L E C T I O N S C R E E N
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_xfile.
       CALL FUNCTION 'WS_FILENAME_GET'
         IMPORTING
           filename         = p_xfile
         EXCEPTIONS
           inv_winsys       = 1
           no_batch         = 2
           selection_cancel = 3
           selection_error  = 4
           OTHERS           = 5.
       IF sy-subrc <> 0.
         CLEAR p_xfile.
       ENDIF.
    * E V E N T - S T A R T O F S E L E C T I O N
    START-OF-SELECTION.
    * Get data from Excel File
       PERFORM sub_import_from_excel USING p_xfile
       CHANGING t_data.
       SELECT but000~partner_guid FROM but000 INNER JOIN but020 ON
    but000~partner =
       but020~partner
         INNER JOIN adr6 ON but020~addrnumber = adr6~addrnumber INTO TABLE
    lt_bu_guid FOR ALL ENTRIES IN t_data WHERE adr6~smtp_addr =
    t_data-email.
       CLEAR: lt_guids,ls_guids.
       LOOP AT lt_bu_guid INTO ls_bu_guid.
         ls_guids-bupartnerguid = ls_bu_guid.
         APPEND ls_guids TO lt_guids.
       ENDLOOP.
       CALL FUNCTION 'BAPI_TARGETGROUP_ADD_BP'
         EXPORTING
           targetgroupguid = p_tgguid
         TABLES
           return          = lt_return
           businesspartner = lt_guids.
    *&      Form  SUB_IMPORT_FROM_EXCEL
    *       text
    *      -->U_FILE     text
    *      -->C_DATA     text
    FORM sub_import_from_excel USING u_file TYPE localfile
    CHANGING c_data TYPE typ_xl_tab.
       CONSTANTS : const_max_row TYPE sy-index VALUE '65536'.
       DATA : l_dummy TYPE typ_xl_line,
              cnt_cols TYPE i.
       DATA : h_excel TYPE ole2_object,
              h_wrkbk TYPE ole2_object,
              h_cell TYPE ole2_object.
       DATA : l_row TYPE sy-index,
              l_col TYPE sy-index,
              l_value TYPE string.
       FIELD-SYMBOLS : <fs_dummy> TYPE ANY.
    * Count the number of columns in the internal table.
       DO.
         ASSIGN COMPONENT sy-index OF STRUCTURE l_dummy TO <fs_dummy>.
         IF sy-subrc EQ 0.
           cnt_cols = sy-index.
         ELSE.
           EXIT.
         ENDIF.
       ENDDO.
    * Create Excel Application.
       CREATE OBJECT h_excel 'Excel.Application'.
       CHECK sy-subrc EQ 0.
    * Get the Workbook object.
       CALL METHOD OF h_excel 'Workbooks' = h_wrkbk.
       CHECK sy-subrc EQ 0.
    * Open the Workbook specified in the filepath.
       CALL METHOD OF h_wrkbk 'Open' EXPORTING #1 = u_file.
       CHECK sy-subrc EQ 0.
    * For all the rows - Max upto 65536.
       DO const_max_row TIMES.
         CLEAR l_dummy.
         l_row = l_row + 1.
    * For all columns in the Internal table.
         CLEAR l_col.
         DO cnt_cols TIMES.
           l_col = l_col + 1.
    * Get the corresponding Cell Object.
           CALL METHOD OF h_excel 'Cells' = h_cell
             EXPORTING #1 = l_row
             #2 = l_col.
           CHECK sy-subrc EQ 0.
    * Get the value of the Cell.
           CLEAR l_value.
           GET PROPERTY OF h_cell 'Value' = l_value.
           CHECK sy-subrc EQ 0.
    * Value Assigned ? pass to internal table.
           CHECK NOT l_value IS INITIAL.
           ASSIGN COMPONENT l_col OF STRUCTURE l_dummy TO <fs_dummy>.
           <fs_dummy> = l_value.
         ENDDO.
    * Check if we have the Work Area populated.
         IF NOT l_dummy IS INITIAL.
           APPEND l_dummy TO c_data.
         ELSE.
           EXIT.
         ENDIF.
       ENDDO.
    * Now Free all handles.
       FREE OBJECT h_cell.
       FREE OBJECT h_wrkbk.
       FREE OBJECT h_excel.
    ENDFORM. " SUB_IMPORT_FROM_EXCEL
    Just copy paste the code and run the report select any local xls file with emails and pass the target group guid.
    snap shot of excel file:
    Let me know if it was useful.

  • Importance of Bounce management functionality in SAP CRM

    Hi All,
    I want to discuss few interesting issues which I have come a cross while doing a setting for bounce management functionality in SAP CRM 7.0
    Before sharing my experience I want to discuss some term related to Bounce email than will discuss about types of bounce emails and cause of the bounce email.The setting of bounce functionality is describing in below link .
    http://help.sap.com/saphelp_crm700_ehp01/helpdata/en/46/3f509215835fa7e10000000a1553f7/content.htm
    In general when a website visitor sigh up they receive email from the company site, the information the site collected saved in the database but It commonly happen some of your email will be undeliever. In marketing term we say it as 'Bounce'. this is the same way happen as when a person give a bank cheque to bank and don't have sufficient money to his/her account the bank people say the cheque got bounce ..
    As we are aware emails are bounce for variety of reason such as.
         - In case the recipient email address is invalid.
         - recipient email address is inactive or closed
         - recipient mailbox is full or mail server have some technical issue etc
    In general all these bounces emails categorize in two category.
    Hard bounce- When email address is not active. example wrong email address, email address de-activated, deleted,or closed
    Soft bounce-  recipient mailbox is full, mail server have some technical issue, Out_of_office is setup .
    Now finally we come to know about the cause of bounce email and types. Now the question arises why this is so important when we have bounce management functionality active in sap crm marketing ? as described in above url.
    suppose that there is a campaigning happening for an product where 3000 person visited it. Now incase 2000 visitors shown interest so have qualified as prospect bases on the information they have provided such as name, address, salary or employment detail.
    After successfully execution of campaign now senior executives create a mailing list for all the prospects in the target group of campaign and sends email to all the users.Now if I say to how many customers really company have reached reached after campaign execution answer will be we can not have the correct fact and figure as there could be some bounce happened.
    Now incase bounce management setting is configure in your CRM system than system will receive inbound e-mails for each bounce.Suppose we have received one thousand bounce emails than we would say actual customer contacted is 1000. this is the correct fact and figure and very much useful for marketing people.
    After than executive could remove email address which were hard bounced and for soft bounce they can use some other channel to contact like telephone calls etc to reach them.
    The correct facts and figures are very much important for marketing strategy and planning and also to know success level of each campaign. Assume a scnario where in day a company launches more than 5 campaign. I feel the importace is transparent now.
    I hope you would find some interest in above blog.
    Thanks
    prem

    HI, Sreedhar
    Check this thread:
    Re: New search help on CRMD_ORDER locator
    Denis.

  • Is there any documentation on Peoplesoft CRM 9 HelpDesk SLA's?

    Hi,
    Is there any documentation available on Peoplesoft CRM 9.0 HelpDesk about Service Level Agreements for internal employees?
    We are looking into implementing Service Level Agreements on the Help Desk module for internal clients (employees). I am looking for any sort of documentation which would help me understand the current out of the box functionality of Service Level Agreements relating to how t functions for internal clients. Any assistance would be appreciated
    Thanks
    Elana

    Please verify the below online PeopleBook help for CRM9.
    http://download.oracle.com/docs/cd/E12341_01/crm9pbr0_run2/eng/psbooks/index.htm
    Thank you!
    Best Regards
    Soundappan

  • [svn] 1543: Bug: BLZ-152-lcds custom Date serialization issue - need to add java.io. Externalizable as the first type tested in AMF writeObject() functions

    Revision: 1543
    Author: [email protected]
    Date: 2008-05-02 15:32:59 -0700 (Fri, 02 May 2008)
    Log Message:
    Bug: BLZ-152-lcds custom Date serialization issue - need to add java.io.Externalizable as the first type tested in AMF writeObject() functions
    QA: Yes - please check that the fix is working with AMF3 and AMFX and you can turn on/off the fix with the config option.
    Doc: No
    Checkintests: Pass
    Details: The problem in this case was that MyDate.as was serialized to MyDate.java on the server but on the way back, MyDate.java was serialized back to Date.as. As the bug suggests, added an Externalizable check in AMF writeObject functions. However, I didn't do this for AMF0Output as AMF0 does not support Externalizable. To be on the safe side, I also added legacy-externalizable option which is false by default but when it's true, it restores the current behavior.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/BLZ-152
    Modified Paths:
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/endpoints/AbstractEndpoint.ja va
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/io/SerializationContext.java
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/io/amf/Amf3Output.java
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/io/amfx/AmfxOutput.java
    blazeds/branches/3.0.x/resources/config/services-config.xml

  • How to Test if an Email Address Exists?

    So we have all been doing email address validation for awhile which I know how to do, but validation only tests if an email address is entered in the right format.  It doesn't verify if an email address actually exists.  I am creating an application  where there will be membership fees, and so an email has to be in more than the right format, I must be positive that it actually exists when the account is created before any money changes hands.  This is critical.  Unfortunately, all of my searching for this relating to Flex or Flash Builder has yielded no results.  Does anyone know of any tutorials or blogs or articles that discuss how to test if an email address entered by a user actually exists using Flex?  or does anyone here have any suggestions on how to approach this problem?
    Thanks!

    The only definitive way is to send the user an e-mail, and have them verify the email address.
    In the past I remember researching options.  Depending on how mail servers were set up; I thought there was some way to ping a mail server and ask if the e-mail address was valid.  This functionality was turned off on most mail servers to prevent spammers from harvesting email addresses.
    Here are some good info on the general approach:
    http://stackoverflow.com/questions/565504/how-to-check-if-an-email-address-exists-without- sending-an-email

  • [svn:osmf:] 12518: Unit tests: moving the utility functions assertThrows, and assertDispatches into a TestCaseEx class.

    Revision: 12518
    Revision: 12518
    Author:   [email protected]
    Date:     2009-12-04 02:28:08 -0800 (Fri, 04 Dec 2009)
    Log Message:
    Unit tests: moving the utility functions assertThrows, and assertDispatches into a TestCaseEx class.
    Modified Paths:
        osmf/trunk/framework/MediaFrameworkFlexTest/org/osmf/composition/TestCompositeMetadata.as
        osmf/trunk/framework/MediaFrameworkFlexTest/org/osmf/metadata/TestFacetGroup.as
    Added Paths:
        osmf/trunk/framework/MediaFrameworkFlexTest/org/osmf/flexunit/
        osmf/trunk/framework/MediaFrameworkFlexTest/org/osmf/flexunit/TestCaseEx.as

  • Oracle PeopleSoft CRM pre-built VM Template

    Hey!
    Am looking for a pre-built VM Template of Oracle PeopleSoft CRM.. In the instructions it says:
    Visit http://edelivery.oracle.com/oraclevm
    Complete your registration information (Name, Company Name, Email Address and Country) and click on the download agreement
    Select "Oracle VM Templates" from the "Select a Product Pack" pull-down menu
    Select "x86 64 bit" from the "Platform" pull-down menu
    Click "Go" and then select from the list of Oracle VM Templates
    Download and unzip the files and read the readme
    But I can't find PeopleSoft listed in after hitting the "Go" button!
    Is there any other way to download it?
    Thank you in advance.

    It seems Oracle needs to revisit their pages more often, the link you pointed is really out of date. The PSoft OVM CRM91 PTools 8.50 you read from the page you linked is dated from August-2010 when I see my software repository...
    The Peoplesoft OVM Templates have been globally decomissioned three years ago I think, you have no luck to find out one of them unless you have already downloaded them.
    Nowadays, Peoplesoft is working with the so-called Peoplesoft Images, virtual machine for VirtualBox. Unfortunately, only available for those who have a valid Customer Support Identifier (paid support) and access to My Oracle Support.
    The Peoplesoft images are rebuilt on regular basis, perhaps every quarter - depending of the application, with the highest maintenance level (application and tools).
    Nicolas.

  • Attach to email function does not respond when Outlook is open.

    We use Outlook 2010 and Adobe Reader 11.0.2. Our users export a report from our ERP system which converts it to PDF and opens in Adobe Reader. Our users then need to use the "Send file as email" function.
    If Outlook is open whilst doing this the envelope button simply greys out for a couple of minutes and then become available again. If Outlook is closed it opens a new Outlook email and attaches the file as expected.
    I've tested this on various PC's and various versions, down to 9.5, of Adobe Reader with the same result.
    If you first save the file the function works fine.

    You may just want to say Remove Email after X days. By not removing your email most carries restrict mailbox size and you will allow it to fill up and then stop newemails from arriving. so You may want to choose Remove emails after say 3 days this way you get it on the phone and on the PC. I run mine at 1 day but thats just me....
    Thanks
    Mike

  • Still 'Pending Send' after successful inbound and outbound test. CRM Online 2013

    I am using CRM Online and Office365. After testing successfully within the admin window for inbound and outbound- emails are still not sending- sitting in Pending Send. Triggers for Email Router is set for inbound and outbound. What
    am I missing?

    Try the following:
    http://www.powerobjects.com/blog/2013/09/19/dynamics-crm-email-router-troubleshooting-101-outgoing-emails/
    I always find this page a good place to start to rule out most of the common issues.

  • VC01N (SAPLV43D) - Unable to Enable Email Functionality

    Hello Experts,
    I am in desperate need of help.  Within our developement environment (BDV), I have modified program SAPLV43D in order to give the user email capability.  I have added the pushbutton to the GUI status, confirmed that the email functionality (ZXV43U12) is turned on and the code in place (FCODE_6X1) for generating the email.  Everything works great on BDV.  Now I would like to test on our test environment (BTS).  I have transported the code to BTS but the email button does not display.  I have ran a remote comparison but everything seems to be there.  After many attempts, I have exhausted my limited knowledge of SAP and could really use some help on what I may want to do next.  Could there be a configuration difference that I may need to check?  If so, where in SPRO should I look for these settings?
    Thanks for your help in advance.
    Laura

    I found my problem.  The Synch button (Wi-Fi, Location, Sound, Screen Rotation, etc.) was not enabled.
    As the great philosopher, Emily Litella (Gilda Radner), on Saturday Night Live once said, "Nevermind".

Maybe you are looking for