Hi, 

There is any way to get contactId by cotnact mobile number from API?

 

Greetings,

Cezary Rynkowski

Like 0

Like

1 comments

It can be implemented in 2 ways:

1) by using $filter expression of the OData protocol. Please feel free to find examples in the article by the link below:  https://academy.bpmonline.com/documents/technic-sdk/7-13/examples-requests-filter-selection

2) by creating a custom configuration service. The article by the link below describes the entire process of implementation: https://academy.bpmonline.com/documents/technic-sdk/7-13/how-create-custom-configuration-service

 

Show all comments

Hi,

How to change default call event. I mean on MobilePhone click - default its opening new tab with callto in url.

Greetings,

Cezary

 

Like 0

Like

1 comments

Hello Cezary,

When you click on the Mobile Phone of contact there is a CTI panel call tab opened and call is performed to the number that is specified in Mobile Phone field. This happens because there is an attribute on ContactPageV2 of UIv2 package called "linkclick":

"linkclick": {

                        "bindTo": "onCallClick"

                    },

that is bound to onCallClick function:

onCallClick: function(number) {

                return this.callContact(number, this.$Id, this.$Account);

            }

that calls callContact function from CommunicationOptionsMixin of NUI package. So to overwrite this logic you need to simply create your own function and call it in linkclick attribute so to trigger your custom action instead of base action.

Best regard,

Oscar

Show all comments

Hi

We have a use case where we need to send outgoing Emails from business processes through an generic SMTP Email server (Not an email service provider like Office365 etc). We have the IP , port number and service credentials of the SMTP server. Find below a few questions we would like get clarity on - 



1. We understand that the typical way would be to add the SMTP Server in the Email providers lookup, create a mailbox for a valid Email account attached to the Email server and use it in the Email process element in the Business process designer. We suspect that the SMTP server we are dealing with is a generic one setup on the client's premises and not that of an actual Email service provider like Office365. Is there a way to send Emails through this SMTP server without having to explicitly create a mailbox for it?



2. We notice a few System variables related to SMTP like 'SMTP Login' , 'SMTP Username' etc. Where are they used and what are they meant for? Can these be used to send outgoing Emails through SMTP without explicitly creating a mailbox?



Greatly appreciate any help here!



Regards

Shrikanth

 

 

Like 0

Like

1 comments

Dear Shrikanth,

1) It doesn’t matter what kind of email server you are using, the main thing is that there should be a connection between IIS and this mail server. In case they are both local, then this will work.

The most correct way is the most obvious: you add a mail server and use standard elements of business process.



2) The 'SMTP Login' , 'SMTP Username' etc. settings are prohibited to use, they are needed for system core functionality.

Regards,

Anastasia

Show all comments

Hi , 

 

If I have to change the the Order Name like Opportunity Name +Order Num , how can we do it ?

 

Like 0

Like

1 comments

Dear Shailey,

You can do that with business process which would trigger anytime a new order is created, read the order name and its opportunity name and modify the number with simple formula http://prntscr.com/p840wa which will combine the Order number and Opportunity name. Once the process is executed- you will get the required result http://prntscr.com/p841am

Best regards,

Dean

Show all comments

How is the email address that Need Help emails are sent to determined?  Can it be set to a local resource rather than bpm'online?  As we release processes to our users, I would want Need Help emails to go to our System Administrators, or have it spawn a custom request process, rather than going to bpm'online, so that our System Administrators review any help requests before they are escalated to bpm'online support.

Like 0

Like

1 comments

I believe this is stored in the "Emails to connect our technical support" system setting (code "SupportEmailDef")

Ryan

Show all comments

Hi Community,

I used this below link to setup push notification in mobile

https://academy.bpmonline.com/documents/technic-bpms/7-11/how-set-push-notifications-mobile-application-users

Licensed users using mobile are getting push notifications but Portal users using mobile application is not getting push notification. Is there any other setup needs to do for portal users?

 

Like 0

Like

1 comments

Dear Fulgen,

The most possible cause is access rights to the object and settings for portal users. Please check the access for the following objects:

PushNotificationToken

PushNotificationService 

Regards,

Anastasia

Show all comments

Hi Community,

Here is our scenario, we want to send sms to customer, this is sms will contain download link of printable. Is it possible to generate a download link for printable?

 

Like 0

Like

1 comments

Hello Fulgen,

To create a report you need to trigger CreateReportsList Report service via link http://bpmonline_site_name/0/rest/ReportService/CreateReportsList where recordIDs and templateId parameters should be transferred. This service generates reports and there is no way for an unauthorised system users to trigger this service (your clients that receive SMS should be authorised to bpm'online application so to trigger this service).

There is no way to insert a link to a printable in our system, but you can create some 3rd party service that will store all printables (ftp storage for example) and you can add the link to those files in this storage to a body of SMS and achieve your task like that.

Best regards,

Oscar

Show all comments

We have over 300,000 records in our Process Log.  We'd like to delete records that are not Running or Error that are over one month old.  They are supposed to be archived, but there are records from months ago that have not been archived. When I select a record, there is no option to delete it or archive it. How do I delete or archive records from the Process Log?

Like 0

Like

4 comments

Dear Janine, 

Process log gradually gets cleared by the archivation process. We don't recommend to delete data from Process Log yourself. However, if you really need to delete that data we recommend to send a request to the support@bpmonline.com if your instance is in cloud as it requires very resource heavy sql operations that would not be possible to track with sql executor. 

If your instance is on-site you can take the instruction below as an example to adapt it based on your needs: 

1) Register SQL procedures tsp_DeleteSysProcessLog.sql and tsp_DeleteSysProcessLogByStartDate.sql (procedures themselves below)

2) Execute the procedure.

Example: EXEC [dbo].[tsp_DeleteSysProcessLogByStartDate] 'Error', '2017-09-22', -1,

Where 'Error' is the status of processes,  '2017-09-22' by which start date to delete processes, '-1' how many processes to delete, -1 means all processes. 



Please note that the operation is very resource heavy and time consuming and we don't recommend doing that during business hours. 

Best regards, 

Dennis

 

IF NOT OBJECT_ID('[dbo].[tsp_DeleteSysProcessLogByStartDate]') IS NULL

BEGIN

    DROP PROCEDURE [dbo].[tsp_DeleteSysProcessLogByStartDate]

END

GO

CREATE PROCEDURE [dbo].[tsp_DeleteSysProcessLogByStartDate]

    @Status nvarchar(max),

    @StartDate date,

    @RowsCountToDelete int

AS

BEGIN

    SET NOCOUNT ON

    IF NOT OBJECT_ID('#SysProcessLogId') IS NULL

    BEGIN

        DROP TABLE #SysProcessLogId

    END

    

    CREATE TABLE #SysProcessLogId (Id uniqueidentifier)

    IF @RowsCountToDelete > -1

        INSERT INTO #SysProcessLogId ([Id])

        SELECT Top (@RowsCountToDelete)

            SysProcessLog.Id

        FROM SysProcessLog

        JOIN SysProcessStatus ON SysProcessStatus.Id = SysProcessLog.StatusId

        WHERE

            SysProcessLog.ParentId IS NULL AND

            SysProcessLog.StartDate < @StartDate AND

            SysProcessStatus.[Name] = @Status

    ELSE

        INSERT INTO #SysProcessLogId ([Id])

        SELECT

            SysProcessLog.Id

        FROM SysProcessLog

        JOIN SysProcessStatus ON SysProcessStatus.Id = SysProcessLog.StatusId

        WHERE

            SysProcessLog.ParentId IS NULL AND

            SysProcessLog.StartDate < @StartDate AND

            SysProcessStatus.[Name] = @Status

    EXEC [dbo].[tsp_DeleteSysProcessLog]

END

GO



CREATE OR REPLACE PROCEDURE "tsp_DeleteSysProcessLogById" (id VARCHAR2)

IS

    TYPE IdSet IS TABLE OF VARCHAR2(38);

    input_ids IdSet;

    i NUMBER;

BEGIN

    SELECT

        "Id"

        BULK COLLECT INTO input_ids

    FROM "SysProcessLog"

    WHERE "ParentId" = id;

    IF input_ids.COUNT() > 0 THEN

    FOR i IN input_ids.FIRST .. input_ids.LAST

      LOOP

        BEGIN

          "tsp_DeleteSysProcessLogById"(input_ids(i));

        END;

    END LOOP;

    END IF;

    DELETE FROM "SysProcessElementLog"

    WHERE "SysProcessId" = id;

    DELETE FROM "SysProcessLog"

    WHERE "Id" = id;

END;

/

CREATE OR REPLACE PROCEDURE "tsp_DeleteSysProcessLog" (inputRowsCountToDelete IN INT, status IN VARCHAR2)

    IS

    TYPE IdSet IS TABLE OF VARCHAR2(38);

    input_ids IdSet;

    i NUMBER;

    step INT := 1000;

    startDate TIMESTAMP;

    rowsCountToDelete INT := inputRowsCountToDelete;

    allRowsCount INT;

    rowsLeft INT;

BEGIN

    DBMS_OUTPUT.PUT_LINE('Database: ' || USER);

    startDate := CURRENT_TIMESTAMP;

    IF (inputRowsCountToDelete <= 0) THEN

            SELECT COUNT("Id") INTO rowsCountToDelete FROM "SysProcessLog";

    END IF;

    SELECT

        "SysProcessLog"."Id"

        BULK COLLECT INTO input_ids

    FROM "SysProcessLog"

    WHERE

    "SysProcessLog"."ParentId" IS NULL

    AND "SysProcessLog"."StatusId" IN

        (SELECT

            "SysProcessStatus"."Id"

        FROM "SysProcessStatus"

        WHERE INSTR(status, "SysProcessStatus"."Value") > 0)

    AND NOT EXISTS(SELECT "SysProcessData"."Id" FROM "SysProcessData" WHERE "SysProcessData"."Id" = "SysProcessLog"."Id")

    AND ROWNUM <= rowsCountToDelete;

    allRowsCount := input_ids.COUNT();

    DBMS_OUTPUT.PUT_LINE('Number of records to process: ' || rowsCountToDelete);

    IF allRowsCount > 0 THEN

        rowsLeft := allRowsCount;

        FOR i IN input_ids.FIRST .. input_ids.LAST

            LOOP

                BEGIN

                    IF MOD(i, step) = 0 THEN

                        DBMS_OUTPUT.PUT_LINE('Step ready: ' || TO_CHAR(CURRENT_TIMESTAMP, 'DD-MM-YYYY HH24:MI:SS.FF2'));

                        DBMS_OUTPUT.PUT_LINE('Rows left: ' || rowsLeft);

                    END IF;

                    "tsp_DeleteSysProcessLogById"(input_ids(i));

                    rowsLeft := rowsLeft - 1;

                END;

            END LOOP;

        END IF;

    DBMS_OUTPUT.PUT_LINE('Number of records processed: ' || allRowsCount);

    DBMS_OUTPUT.PUT_LINE('---------------------------------------------------------------');

    DBMS_OUTPUT.PUT_LINE('Execution time: ' || TO_CHAR((CURRENT_TIMESTAMP - startDate), 'DD-MM-YYYY HH24:MI:SS.FF2'));

END;

/

--CALL "tsp_DeleteSysProcessLog"(10000, '2,4');

 

 

Thanks, I have reported it to Support since there are records even from April that haven't been archived.

I found Beesender tried to delete process log by a process to delete items from Process log (actual). Is that correct or is there any risk of doing that way? 

Van Ly,

Process log is connected to several other tables so there is a risk of not deleting all necessary records or possibly corrupting some necessary data.

Best regards,

Dennis  

Show all comments

When I open my page on a large screen the simple info button / user hint appears as desired/correctly:

However, when I minimize the screen or view my page on a smaller screen, the simple info buttons / user hints appear over the top of the boolean field, where as the text field info button remains the same?

How am I able to wrap the info button to the boolean fields?

Like 0

Like

1 comments

Please feel free to modify CSS according to your needs. The article by the link below explains how to add a new CSS class. If you add it to the BootstrapModulesV2 module then it will be loaded after loading the application. 

https://community.bpmonline.com/questions/how-add-custom-style-control-…

Show all comments

What is the ageing of data that is present under Customer History of Opportunities. If I want to configure it to show data only for last 6 months , how can I do that ?

Like 0

Like

1 comments

Dear Shailey,

Please note that any detail in the application displays all data associated with it. In order to apply the filter please click on the three dots near the detail name and choose the “Apply filter” option.

Please find more information by the link below:

https://academy.bpmonline.com/documents/technic-sdk/7-13/filters

Best regards,

Norton

Show all comments