Skip to content

Commit a419c75

Browse files
committed
fix merge conflicts
2 parents 8c5f71f + 1444838 commit a419c75

4 files changed

Lines changed: 47 additions & 4 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ storage/ssl
3434
storage/api/*
3535
storage/data-sources/logs/*
3636
storage/decision-tables/*
37+
storage/saved_search_advanced_configuration/*
3738
npm.sh
3839
laravel-echo-server.lock
3940
public/.htaccess

ProcessMaker/Managers/TaskSchedulerManager.php

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Illuminate\Support\Facades\DB;
1313
use Illuminate\Support\Facades\Log;
1414
use Illuminate\Support\Facades\Schema;
15+
use InvalidArgumentException;
1516
use Illuminate\Support\Str;
1617
use PDOException;
1718
use ProcessMaker\Facades\WorkflowManager;
@@ -203,10 +204,11 @@ private function processTaskWithAtomicClaim(ScheduledTask $task, DateTime $today
203204
{
204205
try {
205206
$config = json_decode($task->configuration);
206-
$lastExecution = new DateTime($task->last_execution, new DateTimeZone('UTC'));
207207

208-
if ($lastExecution === null) {
209-
return;
208+
// SCHEDULED_JOB rows use last_execution = null until first run; BPMN timers always set last_execution.
209+
$lastExecution = null;
210+
if ($task->last_execution !== null && $task->last_execution !== '') {
211+
$lastExecution = new DateTime($task->last_execution, new DateTimeZone('UTC'));
210212
}
211213

212214
$owner = $task->processRequestToken ?: $task->processRequest ?: $task->process;
@@ -888,6 +890,9 @@ public function scheduleCycle(
888890
*/
889891
public function scheduleCycleJob($interval, array $config): ScheduledTask
890892
{
893+
if (!isset($config['job'])) {
894+
throw new InvalidArgumentException('$config["job"] is required');
895+
}
891896
$configuration = [
892897
'type' => 'TimeCycle',
893898
'interval' => $interval,
@@ -904,6 +909,36 @@ public function scheduleCycleJob($interval, array $config): ScheduledTask
904909
return $scheduledTask;
905910
}
906911

912+
/**
913+
* Schedule a job for a specific datetime
914+
*
915+
* @param string $datetime in ISO-8601 format
916+
* @param array $config configuration
917+
*
918+
* @return ScheduledTask
919+
*/
920+
public function scheduleDateJob($datetime, array $config): ScheduledTask
921+
{
922+
if (!isset($config['job'])) {
923+
throw new InvalidArgumentException('$config["job"] is required');
924+
}
925+
926+
// Must use "interval" so nextDate(TimeDate) picks up the target datetime (same shape as BPMN timer tasks).
927+
$configuration = [
928+
'type' => 'TimeDate',
929+
...$config,
930+
'interval' => $datetime,
931+
];
932+
933+
$scheduledTask = new ScheduledTask();
934+
$scheduledTask->configuration = json_encode($configuration);
935+
$scheduledTask->type = 'SCHEDULED_JOB';
936+
$scheduledTask->last_execution = null;
937+
$scheduledTask->save();
938+
939+
return $scheduledTask;
940+
}
941+
907942
/**
908943
* Schedule a job execution after a time duration for the given BPMN element,
909944
* event definition and an optional Token object

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@
177177
"package-product-analytics": "1.5.11",
178178
"package-projects": "1.12.9",
179179
"package-rpa": "1.1.2",
180-
"package-savedsearch": "1.43.13",
180+
"package-savedsearch": "1.43.12-RC1",
181181
"package-slideshow": "1.4.3",
182182
"package-smart-extract": "1.0.0",
183183
"package-signature": "1.15.5",

config/filesystems.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,13 @@
136136
// Others declared in packages
137137
// - translations - package-translations
138138
// - 'filesystems.disks.install' configured on the fly
139+
140+
'saved_search_advanced_configuration' => [
141+
'driver' => 'local',
142+
'root' => storage_path('saved_search_advanced_configuration'),
143+
'url' => env('APP_URL') . '/storage/saved_search_advanced_configuration',
144+
'visibility' => 'private',
145+
],
139146
],
140147

141148
/*

0 commit comments

Comments
 (0)