Best way to deploy Acumatica API integration - acumatica

I have an integration that pulls data from an API for a POS system and imports it into Acumatica via the contract API. It's written as a console application in Visual Studio, similar to the applications built in the Integration Developer trainings from Acumatica.
What is the best way to deploy this for a SaaS instance of Acumatica?
Non-SaaS, I could put it on the Acumatica server and have it run on a schedule, but I'm not sure of the best way to handle it in this instance of not having access to the server where Acumatica is running.

You should not host it on SAAS instance cause you cannot control it and moreover there can be no PC to run your console application.
If you want your integration to be a running service (console application) you should deploy it on your own server (hardware or cloud). Another option is to implement your integration in your POS terminal (if it give you such possibility).
Do not include this to your Acumatica instance as was recommended by HB_ACUMATICA, because it is not necessary for contract based API integration and will leads to performance issues of this acumatica.

EDIT:
Please refer to Kirill Bestemyanov answer. My answer below suggest a way to execute a scheduled task inside a SAAS environment without circumverting security measures.
It doesn't reflect Acumatica official stance on what should or should not be done on Acumatica SAAS server.
Running console/desktop applications on a SAAS server is likely prohibited due to security issues. You can however run your code inside Acumatica IIS instance.
You can create an Acumatica process screen that pulls the data from the API and inserts it into Acumatica database. The Process action of that screen can be executed by an automation schedule.
Usually code on the server would only be executed by a user request (ex: human navigating to the webpage).
Using Automation Schedule you can run your code at a periodic interval without the need for human intervention.
Documentation for Scheduling Process can be found here:
https://help.acumatica.com/Main?ScreenId=ShowWiki&pageid=1b5b4e81-a71a-4335-892e-ccf6d3b28439
I have copied the documentation here as plain text for reference:
In Acumatica ERP, you can schedule processing on any needed processing forms. The processing will be
performed automatically according to the schedule, which you assign on the Automation Schedules
(SM205020) form. At any time, you can view the history of this automated processing.
T O S C H E D U L E P R O C E S S I N G T H R O U G H T H E P R O C E S S I N G F O R M
Navigate to the processing form you want to schedule.
On the processing form, do the following:
Optional: In the Selection area, specify the criteria for selecting the documents for
processing. View the list of documents that match the selected criteria, and make sure all the
documents you want to process are displayed (that is, that you have selected the criteria
correctly).#_d3f43076-587f-4090-aa74-47cbdfff72e7
On the form toolbar, click Schedules > Add. This opens the Automation Schedules (SM205020) form
as a pop-up.#_a9fdd3d2-d5c6-49e0-8235-cff8e3b9b557
On the Automation Schedules form, in the Description box, enter a description of the new
schedule.
Make sure the processing form you want to schedule is selected in the Screen ID box.
In the Action Name box, select the action that should be performed by the schedule.
_35faeae0-efa6-4d4e-9aec-86a42115abe3
On the Details tab, specify the additional settings of the schedule:
Optional: In the Starts On box of the Details tab, select the start date. By default, the
schedule execution starts on the current business date.
Optional: If you need to specify an expiration date for the schedule, clear the No Expiration
Date check box, and specify the expiration date in the Expires On box.
Do one of the following:
If you want to limit the number of executions, in the Execution Limit box, specify the number
of times the schedule should be executed.
If you do not need to limit the number of executions, select the No Execution Limit check box.
Optional: In the Process with Branch box, select the branch under which the schedule should be
processed. For example, if documents are created by this schedule, the system creates these
documents and specifies the selected branch for each document.
Optional: Change the time zone in which the schedule will operate. By default, the time zone
specified on the User Profile (SM203010) form for the currently signed-in user is selected.
_75a40630-9d40-4a0a-bb6e-f5012bd2bb37
On the Schedule tab, configure the execution dates and time as follows:
Specify how often the schedule execution should be performed:
To execute the schedule daily or every x days, do the following:
In the Schedule Type section, select Daily.
Optional: In the Schedule Details section, in the Next Execution Date box, select the date
when the schedule should be executed next.
In the Every x Day(s) box, type the number of days between successive executions of the
schedule.
To execute the schedule weekly or every x weeks, do the following:
In the Schedule Type section, select Weekly.
Optional: In the Schedule Details section, in the Next Execution Date box, select the date
when the schedule should be executed next.
In the Every x Week(s) box, type the number of weeks between successive executions of the
schedule.
Select the appropriate check boxes for the day or days of the week on which the schedule
should be executed.
To execute the schedule monthly or every x months, do the following:
In the Schedule Type section, select Monthly.
Optional: In the Schedule Details section, in the Next Execution Date box, select the date
when the schedule should be executed next.
In the Every x Month(s) box, type the number of months between successive executions of the
schedule.
Select when the schedule should be executed: the day of the month, or the week in the month
and the day of the week (such as the third Friday of the month).
To execute the schedule once per financial period or every x financial periods, perform the
following steps:
In the Schedule Type section, select By Financial Period.
Optional: In the Schedule Details section, in the Next Execution Date box, select the date
when the schedule should be executed next.
In the Every x Period(s) box, type the number of financial periods between successive
executions of the schedule.
Select the appropriate option button to indicate when the schedules should be executed: at
the end of the period, at the start of the period, or on a fixed day of the period (which
you should specify if you select this option button).
In the Execution Time section, specify the particular time of the day to start and stop the
processing as follows:
In the Starts On box, select the hour and minute when the first execution of the schedule
should start.
If you want the processing to be stopped at specific time or you want the processing to be
repeated multiple times a day, in the Stops On box, select the hour and minute when the first
execution of the schedule should stop.
If execution of the schedule should be repeated multiple times a day, in the Every box,
select the interval between successive executions of the schedule.
In the Next Execution Time box, make sure the next execution time is correct.
If you want the system to execute the schedule at exactly the time specified in the Next
Execution Time box, select the Exact Time check box. If the check box is cleared, the system
may shift the next execution time of the schedule by multiple minutes.
Optional: On the Conditions tab, specify conditions to select the documents or objects by and for
which there are no corresponding elements in the Selection area of the original processing form
as follows:
Make sure the Active check box is selected.
In the Field Name column, select the field to which you want to apply the filter.
In the Condition column, select the condition on the field.
If the field selected in the Field Name column for this row is a date field and you want the
date field to be relative with respect to the current business date, select the Relative check
box.
Select the filtering value in the Value column and, if Is Between is selected in the Condition
column, in the Value 2 column.
Optional: On the Filter Values tab, review the list of elements with the values. Notice that all
the listed elements have the values you have selected in the Selection area on the original
processing form.#_55beb587-21f7-4992-b140-5de4ee4d029d
Click Save on the form toolbar to create the schedule. When you save a newly created schedule,
the system gives it an identifier in accordance with the built-in numbering sequence intended
for automation schedules.
T O V I E W O R E D I T T H E S C H E D U L E S F O R T H E F O R M
Open the processing form for which a schedule has been created (or multiple schedules have been
created).
On the form toolbar, click Schedules > View.
On the Automation Schedules (SM205020) form, which is opened, in the Schedule ID box, select the
schedule.
View or edit the schedule.
T O V I E W T H E H I S T O R Y O F S C H E D U L E E X E C U T I O N S
Open the processing form for which a schedule has been created (or multiple schedules have been
created).#_6acc5114-ca3c-46c6-b6dd-e2baa5d708ab
On the form toolbar, click Schedules > History.#_c4fbf9a5-aabd-4f65-96f2-108ccfcca4c5
In the dialog box that opens, select the schedule whose history you want to view, and specify the
date range for which you want to view the history.#_e560ddd9-b4a5-475f-905b-51b39fe85e25
Click History in the dialog box to view the history of schedule execution.
R E L A T E D A R T I C L E S
Scheduled Processing
To Set Up Automatic Release of GL Batches
To Create a Salesforce Sync Schedule
To Create a Schedule for Full Data Resync
To Set Up Automatic File Synchronization
To Create a Send and Receive Email Schedule
Automation Schedules (SM.20.50.20)

Related

Jobs and schedules - how do they work with each other?

could please someone enlighten me?
I have a data set and I need this data set to be refreshed on the 5th and 15th of the month.
But there can only be one schedule per Cognos object, right?
Is this the optimal solution?
I setup a schedule on the data set itself for the 5th of Month.
Then I create a job and add that data set as a job step.
I schedule the job containing that data set (which includes its own schedule) for the 15th.
What happens on the 15th and how these two schedules work with each other?
(This could also apply to reports etc).
Many thanks
I went through the documentation and some online articles, but there is no definitive answer if a data set (or a report..) can have multiple schedules set.
Lots here about reports and report views explaining how I handle schedules. Substitute "dataset" and "job" and I think you'll get what you want.
One schedule per object leads to limitations. I have found for reports that it is better to create a report view to handle the schedule. I very rarely schedule a report anymore because I often end up needing more than one schedule or set of parameters.
Using a report view provides a means to not only create multiple schedules per report, by creating multiple report views, but also have those schedules send the reports based on independent sets of parameters. For example, the regional VPs want reports showing their sales revenue for the month, but only for their regions. I would create one report, then create a report view for the U.S. and a report view for Europe. Both get sent on the 5th of the month.
Likewise, I could set up 2 report views to work around the scheduling limitations. Say I want to send the same report on the 5th and the 15th. I would create the report, then create 2 report views to handle the schedules.
So, to translate this to your need...
To refresh the same dataset on the 5th and the 15th, create 2 jobs that have the dataset as a step -- one job for each schedule.
Using jobs looks like the right thing to do for your use case. I don't see another scheduling option for datasets.

can some one help me create a Power Automate flow

A power automate flow triggered on a daily schedule will check the list for any tickets that meet (or exceed) due date and submit a ticket to Orion via email. The last run and due date will then be updated. The system may be used to trigger tickets in supplier interface in the future - the destination system should be considered in the list schema.
i am having a hard time to develop a flow that executes the above requirement.
In Power Automate, create a scheduled flow that runs every day.
Declare all variables you will need later.
Assuming you store the value of the last run timestamp in a configuration SharePoint list for example, search and use the action Get item to get the list item where the last run time is stored in this list (you're have to create it if not existing though).
Search and use the function utcNow() in an expression to get the current datetime value.
Convert the previous datetime value with the action Convert time zone to an ISO-8601 datetime using FormatDateTime() function according to your timezone.
Search and use the action Get list items to get all the items of day from your SharePoint list, and filter the query via an OData expression according to the rule (today's date =< last run date + frequency).
Search and use Send an email V2 to send email.
Search and use the action Update item to update the last run time that is stored in a list item in the configuration list mentionned at the beginning.

How can I update Customer Status when the last invoice for that customer is more than 24 months old

I want to set up a scheduled script or a workflow in NetSuite that will automatically change the customer status from "Customer-Closed Won" to "Customer-Closed Lost" if their last invoice is more than 2 years old.
Is this possible with the normal workflow setup or do I need to use a bundle?
You will want to create a scheduled script that runs at some interval - say every Sunday morning. This script can call a saved search that looks at all invoices grouped by customer and max invoice date. The customer status of "customer-closed won" could be a criterion so that you don't look at the ones you already set to "lost". The script can then update all such customer to the "lost" status.
You will also want to write a workflow or user-event on a SO so that if such a "lost" customer creates a new Sales Order, you reset their status to "won"
The simplest way to do this is with a pair of workflows.
One workflow triggers on a schedule and uses a saved search that identifies customer-closed-won where the last invoice (and sales order?) was earlier than your cutoff. It has just a single action that resets the customer status.
The other is a workflow on sales that sets the customer status back to customer-closed-won when a Sales Order is approved (or an invoice is created). This also has a single action that changes the status.
If you don't have workflows available under customization go to Setup > Company > Enable Features. Click SuiteCloud and enable SuiteFlow

How to create a report subscription in SSRS which passes today's date to paramters?

I created a report with a StartDate and EndDate parameter. If I want to see the information for a single day, I use the same Date in both parameters. I now want to create a subscription for this report so that it runs everyday. How can I use the current date and pass it to these parameters when the report runs? Thanks!
Step 1: You will have your defaultDates dataset as so. can be query or you can wrap it as a Stored proc.
Select TodaysDate = cast(getdate() as date)
Step 2: then , under default values for both the params you will anchor get value from dataset and point to this dataset, which is defaultDates.
Step 3: test it locally. Make sure to delete .DATA from your working directory to enforce fresh data.
Step 4: build and deploy to whatever test location.
EDIT: This will only work with Enterprise edition.
First, write a query that gets the current date and formats it to match the VALUE in your parameter (for example, is it DD-MM-YYYY, YYYY-MM-DD?). Make sure to name your column something meaningful like "CurrentDate".
select cast(current_timestamp as date) as CurrentDate
Then create a new subscription for your report. Instead of Standard Subscription, choose data driven subscription. Now select your SQL datasource and paste in your query. Press validate to make sure it runs fine. Hit OK.
Now you can go down to your subscription parameters at the very bottom of the page. Set Source of Value to be "Get value from dataset" then pick your "CurrentDate" from the drop down.
That's it, data driven subscription with current date.

Report depend on SharePoint list

I have simple list in SharePoint just contain Task name,From,to and percent value
where I could assign some task to other one and each week he should update the percent of complete value.
The task maybe take 5-6 weeks So I need a report to know in current week for example which user update his task and the old value and the new value he change.
So I need away to have such report where I could set from date to date and it report which task is changed by who and the changed value.
I'm using normal list in SharePoint 2010.
You can achieve it this way:
1. Create another column in your list (I call it OriginalList) called PreviousPercentValue and set its default value to [Percent Value]
2. Create another list (for example Reports) with columns: [Previous Percent Value], [Current Percent Value]
3. In Reports, add two additional columns to the default view: Created, Created By
4. Create a workflow in SharePoint Designer on OriginalList, activated on modification, that will check if PreviousPrecentValue is different than [Percent Value] and if yes, then:
a) Create a new item in Reports with values: Reports.[Previous Percent Value]=OriginalList.PreviousPercentValue, Reports.[Current Percent Value] = OriginalList.[Percent Value].[Created] and [Created By] will be set automatically for you. I am not sure if [Created By] will be set properly, if not then create another column in Reports called User and in the workflow, set its value to OriginalList.[Modified By]
b) Set OriginalList.PreviousPercentValue to OriginalList.[Percent Value]
This way, every record in your new list Reports will have data you need: who, when, old + new percent values. You can add views on Reports to customize data you want to see.

Resources