Hyperion 9 sending a email on a condition

hi All.
i dont know too much about hyperion..... we have hyperion 9.31 installed....
i have just been asked to look into how to get a hyperion report to send an email on a condition.....
so we have this report and we want it to send the report in a email when it returs any results.
no results, no email.
can 9.3.1 do this?
can anybody help me out or point me in the right direction
thanks
Ryan

There is no clean way to do it with one job.
the cleanest option is to have one job/query for the condition with it setting a trigger/event for the second job/query to run.
I have heard people using JavaScript in the PostProcess event of a BQY deleting the emailed Report section if the test condition is FALSE. the down side is the job will indicate an error since the section is missing for the email action.

Similar Messages

  • How do you make it send an email on a condition? Or automate emails?

    How do you make it automatically send emails or even on a condtiion? (like qty left of inventory is 0)

    As far as making the report emailed conditionally, if the report is an exception report (only showing items with inventory = 0, for example), then you could add this to the report footer to prevent an email from being sent if no exceptions exist (basic syntax):
    WhilePrintingRecords
    dim noEmail as number
    if count({any field}) = 0 then  ' If no records processed...
      noEmail = noEmail / noEmail ' divide by zero failure prevents email from being sent
    end if
    This assumes that the data coming back from the database will only be exception records.  If that is not the case, then you'll have to manually count the number of records with inventory = 0 and use that formula field in the IF statement above.
    The down sides to this technique are that this will cause BOE to not generate anything (not even a blank report), and the status of the run will be Failed...
    HTH,
    Carl

  • Send an email base on data in database

    Hi,
    I have created an stored procedure,which will send an email on certain condition but it doesn't seen to work.
    can anyone pls help.
    sp :=
    CREATE OR REPLACE procedure AMC.amc_renewal(amc_date date)
    as
    begin
    for dates in (select serial_no,
    ORION_SUPPLIER_CODE,
    VENDOR,
    AMC_COST,
    START_DATE,
    LAST_DATE,
    EMAIL,
    MAIL_DATE
    from AMC_DETAIL
    where TO_DATE(MAIL_DATE,'DD-MM-YYYY') = TO_DATE(SYSDATE,'DD-MM-YYYY')) loop
    APEX_mail.send(p_to => DATES.EMAIL,
    p_from => '[email protected]',
    p_subj => 'You have an appt on '||DATES.START_DATE,
    p_body => 'Dear '||DATES.SERIAL_NO ||
    'you have an appt on '||DATES.LAST_DATE);
    wwv_flow_mail.push_queue(
    P_SMTP_HOSTNAME => '10.X.X.X',
    P_SMTP_PORTNO => 'XX'
    end loop;
    end;
    /

    Shirish wrote:
    Hi,
    I have created an stored procedure,which will send an email on certain condition but it doesn't seen to work.When you have a problem always include the following information with your question:
    <li>Full APEX version
    <li>Full DB/version/edition/host OS
    <li>Web server architecture (EPG, OHS or APEX listener/host OS)
    <li>Browser(s) and version(s) used
    Define "doesn't seen to work". As well as saying what doesn't happen, tell us what does:
    <li>Error messages
    <li>Mail queues/logs
    <li>Debug traces
    Always post code wrapped in <tt>\...\</tt> tags.
    CREATE OR REPLACE procedure AMC.amc_renewal(amc_date date)
    as
    begin
    for dates in (select serial_no,
    ORION_SUPPLIER_CODE,
    VENDOR,
    AMC_COST,
    START_DATE,
    LAST_DATE,
    EMAIL,
    MAIL_DATE
    from AMC_DETAIL
    where TO_DATE(MAIL_DATE,'DD-MM-YYYY') = TO_DATE(SYSDATE,'DD-MM-YYYY')) loopWhat is the data type of the <tt>MAIL_DATE</tt> column? If it's DATE it doesn't need <tt>TO_DATE</tt>. <tt>SYSDATE</tt> is definitely a date and doesn't need <tt>TO_DATE</tt>.
    Do not perform unnecessary type conversions. It's confusing and inefficient. What you probably mean here is:
    where mail_date >= trunc(sysdate) and mail_date < trunc(sysdate) + 1 /* assuming mail_date contains time information */or
    where mail_date = trunc(sysdate) /* if the time component of all mail_date values is 00:00:00 */
    APEX_mail.send(p_to   => DATES.EMAIL,
    p_from => '[email protected]',
    p_subj  => 'You have an appt on '||DATES.START_DATE,
    p_body => 'Dear '||DATES.SERIAL_NO ||
    'you have an appt on '||DATES.LAST_DATE);
    wwv_flow_mail.push_queue(
    P_SMTP_HOSTNAME => '10.X.X.X',
    P_SMTP_PORTNO => 'XX'
    );Pushing the mail queue after every send is inefficient and difficult to manage. The best approach is not to include this in application code and let the scheduled background job handle it.
    end loop;
    end;

  • Outlook Conditional Formatting by sender's email address?

    Is it possible to set Conditional Formatting based on the sender's email address (rather than the name displayed in the From field)?
    We're using Outlook 2010 in cached mode with an Exchange server.
    Thanks!

    Hi,
    Currently it's by design. If we change the display name by VBA, we may set the condition based on the Sender's email address:
    http://www.slipstick.com/outlook/contacts/bulk-change-outlook-contacts-email-display-name-format/
    You can also refer to the thread you noticed earlier, our moderator also posted an answer to the original question:
    http://social.technet.microsoft.com/Forums/office/en-US/0257072a-2068-40bb-94ae-d12c992d4ea1/conditional-format-problem-in-outlook-2010-to-from-fields?forum=outlook#d85fda41-9f3e-47b3-af30-37099bd8119f
    Regards,
    Melon Chen
    TechNet Community Support

  • HT5624 Just purchased an Ipad, I,m stuck on a page "Conditions" on this page ias a note saying "Send by Email", i cannot get out of this page, how do I get out.  Walter

    Just purchased an Ipad, I'm stuck on a page "Conditions" on this page it says "Send by email"
    .  How do I get out of this page.  Walter

    Reboot the iPad by holding down on the sleep and home buttons at the same time until the Apple logo appears on the screen. It takes about 10 seconds. After you see the logo, you can release the buttons.

  • SharePoint Foundation 2013 installed on Windows Server 2012 not sending out email notification

    I have a server where i installed SP Foundation 2013 on top of Windows Server 2012. I have configured the SMTP as well as the outgoing SMTP in Central Administration
    of SharePoint. When i create an alert on a document library, its did not sent any email notification on the changes made to the document in the document library. So, i created a workflow to send out email using SPD2013. The workflow run, but it cannot sent
    out email with error saying that outgoing email is not configured correctly. I have checked with another server which i installed SP foundation 2013 on top of Windows Server 2008 R2 - its sending out email just fine using same configuration and outgoing SMTP.
    I need help to resolve this issue or at least the cause of the problem.
    Any help is greatly appreciated.

         
    Try below:
    http://social.technet.microsoft.com/wiki/contents/articles/13771.troubleshooting-steps-for-sharepoint-alert-email-does-not-go-out.aspx
    Go to Central Admin ---->Operations----->outgoing email settings and verify that SMTP server is mentioned correctly 
    2) Test the connectivity with the SMTP server.
    In order to do that follow these steps:
      Open  cmd
      telnet <SMTP server name> 25 ( We connect smtp server to the port 25)  
                     you should see a response  like this 220 <servername> Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at date and time
                     Beware that different servers will come up with different settings but you will get something
                     If you dont get anything then there could be 2 possible reasons, either port 25 is blocked or 
                     the smtp server is not responding.
      For testing response from your server
                       For testing response say ehlo to it.
                            Type :
                                        ehlo <servername>
                            output:
                                        250 <servername> Hello [IP Address]
      Now a test mail can be sent from that SharePoint server. 
                          Now we need to enter the From address of the mail.
                          Type :
                           mail from: [email protected]
                           output:
                           250 2.1.0 [email protected]….Sender OK
     It's time to enter the recepient email address.
    Type : rcpt to: [email protected]
    output:
    250 2.1.5 [email protected]
     Now we are left with the data of the email. i.e. subject and body.
    Type : data
    output:
    354 Start mail input; end with <CRLF>.<CRLF>
    Type:
    subject: this is a test mail
    Hi
    This is test mail body
    I am testing SMTP server.
    Hit Enter, then . and then Enter.
    output:
    250 2.6.0 <<servername>C8wSA00000006@<servername>> Queued mail for delivery
    Type: quit
    output:
    221 2.0.0 <servername> Service closing transmission channe
    3)  Check alerts are enabled for your web application
          verify if the windows timer service is running or not.
          Run this stsadm command to check that
          Stsadm.exe -o getproperty -url http://SharePoint-web-App-URL -pn alerts-enabled
         This should return <Property Exist="Yes" Value="yes" />
         If you don’t get this, Enable alerts by:
         stsadm.exe -o setproperty -pn alerts-enabled -pv "true" -url http://SharePoint-web-App-URL
          If its already enabled, try turn off and turn on it back.
    4)  Check the Timer job and Properties
           Go to
           MOSS 2007:  Central Administration > Operations > Timer Job Definitions (under Global Configuration)
           In SharePoint 2010: Central Administration > Monitoring > Review Job Definitions 
           Check whether the "Immediate Alerts" job is enabled for your web application. check these properties:
                       job-immediate-alerts
                       job-daily-alerts 
                       job-weekly-alerts
           stsadm.exe -o getproperty -url "http://Your-SharePoint-web-App-URL" -pn job-immediate-alerts
           The expected output is:
           <Property Exist="Yes" Value="every 5 minutes between 0 and 59"/>.  
           If you don’t get this, run the following command to set its value.
           stsadm.exe -o setproperty -pn job-immediate-alerts -pv “every 5 minutes between 0 and 59" -url http://Your-SharePoint-web-App-URL
    5)  Check whether the account is subscribed for alerts and it has a valid email account. This should be the first thing to check if the problem persists for some users not for      all.
    6)  Then check if at all those users have at least read permission for the list. Because the first mail should go out for every user without security validation but the next ones       won't be delivered unless the user has at least read
    permission.
    7)  If it is happening for one user, can also try to delete and re add the user in the site.
    8)  Most importantly , you should try this one.
          Run this SQL query to the content db < Select * from Timerlock>
          This will give you the name of the server which is locking the content database and since when.
          In order to get rid of that lock 
          Go to that server which is locking the content db and then restart the windows timer service.
          within some time it should release the lock from content db, if not then at the most stop the timer job for some time
          Once the lock will be released then try to send some alerts
          You will surely get the email alert.
    I found this is the most probable reason for alert not working most of the time. We should start troubleshooting with above steps before coming to this step for any alert email issue but from step 1 to step 7 are best for new environments or new servers.
    If the issue is like this ,alert was working before and suddenly stopped working without any environmental change then above conditions in step 1-7 should be ideally fine.
    Even after this if it is not working, then you can try these few more steps too
    9)  Try re-registering the alert template:
    stsadm -o updatealerttemplates -url http://Your-SharePoint-Web-App-URL -f  "c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\XML\alerttemplates.xml" -LCID 1033
    10)  Try to clear the configuration cache
    If this helped you resolve your issue, please mark it Answered

  • Serv. Desk: Action: send an email only when a value in a field has changed

    Hello,
    In Soution Manager 4.0, Sevice Desk, I would like to create an action which creates an email only when a value of a certain field has changed.
    - only in change mode relevant
    - only when a value of one field has changed (e.g. Message Processort has changed from Buss. Partner 4 to 5. Than a mail should be sent to BP 5).
    - it should only send this kind of email when the field value has changed in change mode. In other words: it should not sent the email e.g. when the status has changed.
    I tried all kinds of things but I do not know on how to define the COnditions for an Action, so I can compare e.g.
    if <old value> <> <new value>
    Any ideas or experience on how to implement this without major modifications ?
    Thanks
    Christian

    Hi Christian,
    check out my question on SDN.
    Email on Status Change
    it has details on how to send an email when the status changes. I believe you are going to have to do something like this for each of the fields you want to create an Action Starting Condition for.
    regards,
    Jason

  • 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>

  • Sending an email when the report is being refreshed

    Hi All,
    Is it possible, in Answers, to send an email automatically when a report is being refreshed ?
    Thanks in advance,
    Lau

    You can do this multiple ways, As you mentioned using conditional ibot also. You should have flag or indicator in your database saying that ETL load was done. Then based on conditional request run a ibot. But the trick is after completing this ibot you need to turn of the flag.
    Other easiest way is Create a report which runs ibot, Make sure you checked Oracle BI Server Cache feed check box, save the ibot. At the end of ETL execute a command which runs the ibot job for you. There is a command mode application available in Oracle BI called SASchInvoke.exe. This application will run the ibot for you.
    here is the blog which explains more about it.
    http://oraclebizint.wordpress.com/2008/03/06/oracle-bi-ee-101332-integrating-schedulerdelivers-into-other-applications/
    - Madan

  • Sending an email using a scheduler

    Hi,
    I need a help to implement email scheduler.
    I need to notifiy a particular user using email.
    I am using JavaMail to send the email.
    All is working fine. I am able to send an email.
    Now, if under any conditions email notification fails, there should be a scheduler
    which should try to send an email within a time frame.
    Can you please help me to implement a scheduler?
    Thanks in advance!!!

    Normally that's the job of your mail server. If necessary,
    install a mail server on the same machine as your application
    to ensure that it's always available to accept messages from
    your application.

  • How to send an Email Message along with a PO PDF Attachment in Word.

    I want to send an Email to a customer. The subject of the email is the PDF attachment of the Purchase order.
    Then in the Body of the email, we need to put a small Mesasge in the Body of the Email: Example
    Hello,
    Please see attached Purchase Order.
    thank you...
    Does anyone have a suggestion on how to do this? Best approach?
    thanks
    Walter Poe

    Hi Walter,
    In NACE transaction, select Application EF , then select your P.O Message ( standard is NEU ) .
    Then in "processing routing" parts check that there is an entry for medium 5 ( external send ) , if not please set it with corresponding print program, from routine and forms to use .
    Then in "Mail Title and Text" parts  you can define your mail title with variable and your mail body . Please find below a sample for this. To define the mail body just click on the icon for text ( it's like sapscript text ).
    Mail Title : "Your P.O &EKKO-EBELN"
    Mail Body : "Please find enclosed our P.O &EKKO-EBELN....."
    That's all for NACE parts.
    After this you have to define thru condition that the medium will be used for each P.O. For this check with functionnal consultant if everything is ok and the same that for medium 1.
    Then when you create a P.O, SAP will generate a mail with supplier e-mail adress define in his masterdata . The forms will be converted according to your customizing in transaction SCOT ( node SMTP , Support address type parts) .
    Of course you also have to define a job for sending the mail .
    Hope this help you
    Regards
    Bertrand

  • Workflow changes - send reminder email on X - 1 days ...  based on Molga

    Hello Everyone,
           I new to workflow and I came across a workflow scenario where I am confuse, that what should I do in order to make it work. Luckily we are running only one workflow in the system which is time off request, We copied standard workflow class u201CCL_PT_REQ_WF_ATTRIBSu201D to Z version and introduced some new method to send email to employees managers as well as employee and HR .
    We also have something called workflow item cancel thing . Lets say if workflow is not approved by manger within X bossiness days it got cancel and employee has to submit the new time off request again. After doing a little bit research I came to know that there is standard job which checks and calculate the X days thing. Work flow is running fine from last 1 year.
    Last week, we been asked to create reminder from X-1 day and sends to employee manager saying u201C This is a reminder and one day is left u201C  .
       I wanted to know how I can achieve that, I have to filter the employee by reading employeeu2019s molga as we want to do it for specific countries  then I have to read employee manager which I can do using different FM and then I have to send email to employee's manager .
    Like I said It should happen BEFORE x-1 business days when employee submits the time off u2026   
    Here what I am thinking , I  can read table u201CSWWWIHEADu201D  with field WI_TYPE = u2018Wu2019 .  and  pass work_id to FM " SWW_WI_CONTAINER_READ "  and read the container like the  INCLUDE  MWS20000081HO01
      CALL FUNCTION 'SWW_WI_CONTAINER_READ'
             EXPORTING
                  wi_id                    = wi_id
                READ_FOR_UPDATE          = ' '                         *
             TABLES
                  wi_container             = wi_container
             EXCEPTIONS
                  container_does_not_exist =  1      "message from function
                  others                   = 99.
        IF SY-SUBRC = 0.
          SWC_GET_ELEMENT WI_CONTAINER 'ACTUALSTATE' ACTUALSTATE130100.
        ELSE.
          CLEAR ACTUALSTATE130100.
        ENDIF.
        IF ACTUALSTATE130100 = 'N'.
          CALL TRANSACTION 'WS20000081M'.
          LEAVE PROGRAM.
        ENDIF.
    From container I can read employee number and approver . Get molga via  pernr and can filter the employee ..who ever submits the request system date u2013 4 .. I can send out the reminder email u2026
    Is there any other way around or any other efficient way of doing that u2026 I hope  you understand this thing is conditional u2026 As far as I am concern I new to workflow so please bear with me ..
    Waiting
    Khan
    FYI- I have gone through several post which task about deadlines monitoring Etc .. using fork & wait blah blah .. but It didnu2019t get any clue where to start and how to start u2026

    Mike,
            I think I am following you so for .. so here what I did ... I opened the "approve process" and slap in the same refer date/time in "Requested end date " with variables "&WFDATA.DEADLINEDATE&" "&WFDATA.DEADLINETIME&"  with 1- DAY . I didnu2019t find this what it says in help " It is possible to specify a negative time interval. Negative time   intervals should only be used in connection with an expression as a   reference date/time. You then have the option of "backward deadlines"
    Any way after that I changed action to "modeled" and say "outcome "reminder from UK " .
    it creates a node with clock sign , now like you said , I can do many  things here .. and I really need to do something for example , I need to check the employee if he/she is from UK , after that reads his/her manager and send an email to mangeru2019s outbox . UK gave us an email format which I have created in t-code SE60 - with Document Class "Dialog Text".
    How to proceed further. Thanks for baby sitting me.
    What I am thinking , I need to create a new activity as well as new method in my Zclass, in which I will check employee Molga  i.e. U.K and I have to send out email based on my email text which I have created in SE61.
    Iu2019m able to write code in existing method , being on the safe side I copied the existing workflow and made changes in to it . Now it comes to debugging part , Iu2019m able to find posts on SDN talks about workflow debugging . When I am entering time off request from ESS , and it is not stopping at external breakpoint , Also when I am looking at "PTARQ"  to see submit WF items . It is showing me the old task "w90000012" which is original one and I copied it and my task is "w90000022" . What I have to do  so when I submit time off request via ESS it calls my task . I created Task in PFTC . But nothing is happening . Please let me know what I am missing ..
    I found the table for ESS  leave request and able to see my task  , Table name is "u2022     V_T554S_WEB"
    But still waiting for answers the of above questions ...
    Edited by: Saquib Khan on May 27, 2008 9:36 AM

  • How to send alert email notification through graphical mapping ?

    Hi,
    I want to send an email notification whenever there is an exception raised while doing graphical mapping.
    However my requirements are as follows :
    1. We want to use email adpater sending emails
    2. We don't want to go for BPM approach, to achieve the above requirement
    3. We don't want to connect to any alert framewok.
    I appreciate your early reply.
    Thanks
    Ganesh

    Hey
    >>whenever there is an exception raised while doing graphical mapping.
    as said earlier this is not possible without configuring alerts.
    yeah,if u know the reasons beforehand that why exceptions can be be triggered in mapping,then u can use conditional receiver determination,for e.g suppose u know that you will get a mapping exception if value of tag <OrdersID>=000,then u can use this condition in conditional receiver determination and send a mail to concerned party,but this won't work if u don't know beforehand as to under what conditions the exception will be  triggered in mapping.
    i would vote for configuring alerts as its the most suited way to handle this
    thanx
    Aamir

  • How to send an email in case a Z Table is changed.

    Hi All,
              I need some guidance on how to send an email in case a Z Table is changed.
    Thanks in Advance,
    Saket

    HI Saket,
    As far as I understand you need to send an email whenever a Ztable is changed.For that
    1. You need to create a BO with the event Table changed using transaction SW01.
    2. then you need to bind this event to your Ztable.for that steps are mentioned in the link given below:-
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/abap/how%20to%20implement%20events%20in%20table%20maintenance.doc
    basically this pdf will illustrate to you as to how you should bind a event to table maintenance. this event should be traced with the one created in the BO using transaction SWEL.
    3.After that you need to create workflow wherein you will use the event which you have defined in the BO in the BASIC DATA(button with the Hat) of the workflow developer(Transaction swdd). in the Basic data you need to put in the object name and the event in the Startitng condition tab.
    4.After that you need to have an email task included as in the workflow stating the text and subject line with the agent assigned as Workflow initiator.
    after all these settings are done the try to do some changes in the Ztable. and after that just goto the transaction sbwp(Sap business workplace) to check whether the email has been sent out for.
    Let me know if you are still unable to implement becuase I have already worked on it and its working in my case

  • How to send the email to different email addresses from Workflow

    Hello,
    i an not getting that how to send the email from Workflow in SAP.
    plz give the steps to do that.
    i have done lots of time but system is not sending the email to different email address.

    Hi,
    lot of configuration is invloved in sending
    mail to external email id. check BASIS to
    configure for external mails ans also check
    debug FM and see which conditions exceptions
    (Document not sendis raised)
    also check below code
    CLEAR: DOC_CHNG, OBJTXT, OBJBIN, OBJPACK, OBJHEAD, RECLIST,
    RECIPIENT_INT, DOC_SIZE,TAB_LINES.
    REFRESH: OBJTXT, OBJBIN, OBJPACK, OBJHEAD, RECLIST.
    OBJBIN[] = CONTENT_OUT[].
    Populate e-mail title
    DOC_CHNG-OBJ_NAME = 'MAIL'.
    CONCATENATE 'EETS for Contract #'(245)
    OIA01_TAB-EXGNUM
    INTO DOC_CHNG-OBJ_DESCR SEPARATED BY SPACE.
    DESCRIBE TABLE OBJTXT LINES TAB_LINES.
    READ TABLE OBJTXT INDEX TAB_LINES.
    DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
    It is a text document
    CLEAR OBJPACK-TRANSF_BIN.
    The document needs no header (head_num = 0)
    OBJPACK-HEAD_START = 1.
    OBJPACK-HEAD_NUM = 0.
    but it has a body
    OBJPACK-BODY_START = 1.
    OBJPACK-BODY_NUM = TAB_LINES.
    of type RAW
    OBJPACK-DOC_TYPE = 'RAW'.
    APPEND OBJPACK.
    Create the attachment (the list itself)
    DESCRIBE TABLE OBJBIN LINES TAB_LINES.
    It is binary document
    OBJPACK-TRANSF_BIN = 'X'.
    we need no header
    OBJPACK-HEAD_START = 1.
    OBJPACK-HEAD_NUM = 0.
    but a body
    OBJPACK-BODY_START = 1.
    OBJPACK-BODY_NUM = TAB_LINES.
    of type PDF
    OBJPACK-DOC_TYPE = 'PDF'.
    OBJPACK-OBJ_NAME = 'Attachment'(239).
    CONCATENATE 'EETS_' OIA01_TAB-EXGNUM '_'
    IT_ZMMTACCUID-ACCTUSRID
    '_' SY-DATUM '_' SY-UZEIT '.PDF'
    INTO OBJPACK-OBJ_DESCR.
    READ TABLE OBJBIN INDEX TAB_LINES.
    DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJBIN ).
    OBJPACK-DOC_SIZE = DOC_SIZE.
    APPEND OBJPACK.
    Get e-mail address
    CLEAR IT_ADDRESS.
    READ TABLE IT_ADDRESS WITH KEY ACCTID = IT_ZMMTACCUID-ACCTUSRID
    BINARY SEARCH.
    IF SY-SUBRC = 0.
    RECIPIENT_INT-ADDRESS = IT_ADDRESS-SMTP_ADR.
    ENDIF.
    *Send email to external mail address
    RECLIST-RECEIVER = RECIPIENT_INT.
    RECLIST-REC_TYPE = 'U'.
    APPEND RECLIST.
    CLEAR RECLIST.
    *Send email to SAP Office mail address
    RECLIST-RECEIVER = IT_ZMMTACCUID-ACCTUSRID.
    RECLIST-REC_TYPE = 'B'.
    APPEND RECLIST.
    CLEAR RECLIST.
    SEND THE DOCUMENT BY CALLING THE SAPOFFICE API1 MODULE
    FOR SENDING DOCUMENTS WITH ATTACHMENTS
    call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    exporting
    document_data = doc_chng
    put_in_outbox = 'X'
    importing
    sent_to_all = sent_to_all
    tables
    packing_list = objpack
    object_header = objhead
    contents_bin = objbin
    contents_txt = objtxt
    receivers = reclist
    exceptions
    too_many_receivers = 1
    document_not_sent = 2
    operation_no_authorization = 4
    others = 99.
    also check
    https:/Re: mail sending problem
    Regards
    amole

Maybe you are looking for

  • IDM 8.1 deprovisioning of domino user thowing error

    Hi, I am using Sun IDM 8.1. I configured Lotus Domino as an resource. I am able to do the following successfully. 1) Creation of a user 2) Modification 3) Change password I am facing problem in deprovisioning or deleting a user from the resouce. Erro

  • MacPro 2006 don´t show Finder after system update for OSX 10.6.8

    At startup a grey screen with the Apple and the wheel who stops after abot 10-15 seconds then a flickering screen. I can see the computer on the network but I can´t work with it. I have tried to Zap the PRAM by starting with Alt, Cmnd, R, P without s

  • File size problem between Acrobat 8 and 9

    When I print to a PDF from Acrobat 8 I get a file size that is slightly larger than the original PDF file size.  Example a 1.6 mb file becomes a 1.7mb file.  When I print the same file in Acrobat 9 with the same settings (to my Knowledge) (setting =

  • How to embad a movie file in jsp page.

    I want to run a movie file in my jsp page. please provide the code how to do this. thanks uttam

  • Unable to reconnect mac pro wirelessly to my Epson SX515W   printer?

    Mac Pro is my laptop Epson printer SX515SW I had wireless connection From a couple of months ago i am unable to reconnect it Printer has wireless connection,when i try to print anything,, the computer says printer not connected , keep saying printer