Start a workflow every first day of the month - sharepoint

Is it possible to start a workflow automatically the first day of every month?
Edit:
In principle I think this has to be programmatically although if it can be achieved using an out of the box features it'd be easier.

Yes, you can start workflow using 2 diffrent approch as below.
Create one timer job which will run on every first of the month & kickoff the workflow programatically.
Create custom workflow which will run when item added but wait until 1st date of the month.

You can try creating a workflow for the list you are monitoring and set the action to wait until the 1st day of the month before doing the rest of the actions.

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.

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 get Start Date of current iteration of Azure DevOps?

I would like to do a query on Azure Devops considering the condition:
work item = Task and
created date < ["Start date of #CurrentIteration"] and
iteration path = #CurrentIteration
How can I perform this contintion (["Start date of #CurrentIteration"]) on Azure Devops?
How can I perform this contintion (["Start date of
#CurrentIteration"]) on Azure Devops?
As I know there's no predefined macros that represents the start date of #CurrentIteration. We have to go Sprints tab manually to get the start date of current Iteration and then use that value in Query.
You can check this document for more details: To list work items based on when they were created, closed, resolved, or changed state—use #Today or specify dates. For queries that list work items based on their assignment to a team's current sprint, use #CurrentIteration.
For now we don't have such macros like #StartOfCurrentIteration. But it would be better if we have one macros used to represent the start date of #CurrentIteration. So I suggest you can post one feature request(Suggest a feature) of this macros in our User Voice forum-Developer Community Forum.
Thank you for helping us build a better Azure DevOps. Hope my answer makes some help:)

Calculate Last Working Day

I am trying to calculate the last working day for a process. Typically, this will be yesterday. However, if the process runs on a Monday it should bring back the date of Friday.
My calculation is:
Today()-MakeTimeSpan(1, 0, 0, 0)
Current code stage
The Best Practice in this area is to use VBO called "Calendars", that is a Internal one, built in the BluePrism.
Object: Calendar
Action: Add working days
Calendar Name: "Working Week / No Holidays"
Date: Today()
Days -1
An advantage of that solution is that you can customize the calendar to add all Holidays that are Bank Holidays for your company.
In the past, I've been able to accomplish this by using a dedicated Utilities object with an action that's just a single code stage. The action has a single Output connected to a single output of the Code stage.
out = DateTime.Now.AddDays(-1)
While out.DayOfWeek = DayOfWeek.Saturday Or out.DayOfWeek = DayOfWeek.Sunday
out = out.AddDays(-1)
End While
This also opens the ability for you to add complex logic to account for holidays in your locale(s) without cluttering up your action page.

SharePoint Calendar End Time Column And Workflow Updating

I am trying to update the End Time column using a SharePoint Designer workflow. I simply want to add 15 minutes to any new event created, but I cannot update the End Time column. I constantly receive this error:
The workflow could not update the item, possibly because one or more
columns for the item require a different type of information.
I am able to add 15 minutes to any generic data column in the calendar, but not the End Time column.
Any ideas on how to update the column?
Does the workflow run on item update? SharePoint will not a workflow to loop e.g. you update the titem, the workflow updates the end time, this update restarts the workflow, so the emd time is updated etc
Have you tried using a calculated column for the end date? This link will show you how to add minutes to a time
Better late than never :)
I found the solution for this: EndDate should be updated the same time as EventDate.
You can use the Update List item action and update both fields with it to get rid of the error message.

Resources