Spartacus- Consignment roll back - spartacus-storefront

Any input on this
[SourceOrderAction] Process: order-process-00002001-1603978375652 in step SourceOrderAction
[SourceOrderAction] Sourcing from Location: 'Kobe Sannomiya Terminal Hotel'
[SourceOrderAction] Product [553637]: 'NV10' Quantity: '1'
[SourceOrderAction] Start Consignment sub-process: 'cons00002001_0_ordermanagement'
[SourceOrderAction] Order was successfully sourced
[ProcessengineTaskRunner] Transaction rolled back because it has been marked as rollback-only
org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
it is happening while consignment process, consignment and consignment process creates and then rollback, In AbstractPlatformTransactionManager , it seems process's transaction is getting marked as roll back globally
It is happening in OOB spartacus B2C

We have to run the impexes to enable users , which will allow the fulfillment and consignment and its process will not roll back

Related

Camunda - Intermedia message event cannot correlate to a single execution

I created a small application (Spring Boot and camunda) to process an order process. The Order-Service receives the new order via Rest and calls the Start Event of the BPMN Order workflow. The order process contains two asynchronous JMS calls (Customer check and Warehouse Stock check). If both checks return the order process should continue.
The Start event is called within a Spring Rest Controller:
ProcessInstance processInstance =
runtimeService.startProcessInstanceByKey("orderService", String.valueOf(order.getId()));
The Send Task (e.g. the customer check) sends the JMS message into a asynchronous queue.
The answer of this service is catched by a another Spring component which then trys to send an intermediate message:
runtimeService.createMessageCorrelation("msgReceiveCheckCustomerCredibility")
.processInstanceBusinessKey(response.getOrder().getBpmnBusinessKey())
.setVariable("resultOrderCheckCustomterCredibility", response)
.correlate();
I deactivated the warehouse service to see if the order process waits for the arrival of the second call, but instead I get this exception:
1115 06:33:08.564 WARN [o.c.b.e.jobexecutor] ENGINE-14006 Exception while executing job 67d2cc24-0769-11ea-933a-d89ef3425300:
org.springframework.messaging.MessageHandlingException: nested exception is org.camunda.bpm.engine.MismatchingMessageCorrelationException: ENGINE-13031 Cannot correlate a message with name 'msgReceiveCheckCustomerCredibility' to a single execution. 4 executions match the correlation keys: CorrelationSet [businessKey=1, processInstanceId=null, processDefinitionId=null, correlationKeys=null, localCorrelationKeys=null, tenantId=null, isTenantIdSet=false]
This is my process. I cannot see a way to post my bpmn file :-(
What can't it not correlate with the message name and the business key? The JMS queues are empty, there are other messages with the same businessKey waiting.
Thanks!
Just to narrow the problem: Do a runtimeService eventSubscription query before you try to correlate and check what subscriptions are actually waiting .. maybe you have a duplicate message name? Maybe you (accidentally) have another instance of the same process running? Once you identified the subscriptions, you could just notify the execution directly without using the correlation builder ...

How does full node verify transaction if all it has bitcoin address and no public key

If it’s impossible to get public address from bitcoin address. How can a full node performing the transaction verify that the transaction is coming from authorised user.
The core of bitcoin is he language, Bitcoin Script, this is a language not Turing complete because is without loop.
The node bitcoin doesn't need the public key for spending the bitcoin, but a transaction input have an unlocked script (known as ScriptSig) this transaction can unlock a previous output transaction with have a locked script(Know as Script pubkey), for unlocked the node executed in the stack the ScriptSig + ScrptPubKey, if return true the transaction is spendable otherwise no.
an example
if you have two transaction
Input:
Previous tx: f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6
Index: 0
scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10
90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501
Output:
Value: 5000000000
scriptPubKey: OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d
OP_EQUALVERIFY OP_CHECKSIG
How bitcoin execute the script
Complete script
304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10 OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d OP_EQUALVERIFY OP_CHECKSIG
if you push the script inside this ide and run it you can see how bitcoin run the script.
In this example the ide returned false because the transaction output cannot be sent with her input
The ScriptPubKey(most of the time) contains the pubKey
The ScriptSing contains the Signature of the private key
This are all informations for work the simple node bitcoin.
Now I have and question for you.
You say
impossible to get public address from bitcoin address.
what does it mean?

Maximo 7.6 APPR POs via Integration

We have an integration where in PO will be created in an external application and then will be interfaced to Maximo.
POs which are aproved only will be inbound to Maximo , however Maximo doesnt allow addition of POLINES in APPR status ,so via integration , we are receiving the PO in WAPPR status.
We have to approve the PO instantly so that any successive PO updates / Receipt transactions process to Maximo.
I'm aware that an escalation can do the task of approving POs, however I would like the status change to happen instantly.
I have tried following options
1)Create a workflow to approve PO and set it to auto initiate. This doesnt work as workflow set to auto-initiate doesnt get triggered for objects created through integration
2)Tried setting up automation script to initiate workflow
from psdi.mbo import MboConstants
from psdi.server import MXServer
print("**************Script to Approve Inbound POs *******");
stat=mbo.getString("STATUS")
if ( stat != ''):
print ( " Status is not null ");
print ( stat);
if ( stat=='WAPPR'):
print ("Status is WAPPR");
MXServer.getMXServer().lookup("WORKFLOW").initiateWorkflow("[my WF]",mbo);
print(" Workflow has been initiated and PO will be approved");
my WF contains an Action , which performs Change Status to set status as APPR.
This creates an entry in the POSTATUS table, however new Status reads as WAPPR instead of APPR
3)Automation script to set value for Status
from psdi.mbo import MboConstants
from psdi.server import MXServer
print("**************Script to Approve POs Inbound *******");
stat=mbo.getString("STATUS")
if ( stat != ''):
print ( " Status is not null ");
print ( stat);
if ( stat=='WAPPR'):
print ("Status is WAPPR");
mbo.setValue("STATUS","APPR",MboConstants.NOVALIDATION );
print(" Status approved");
This was set up with Object Launch point , Object as PO and on Save operation , After commit.
This also dint work.
Please let me know whether there are any other options
Not sure if you're workflow triggering script is working or if it is needed.
The problem is you analysis of the change status. Because a new PO record is created, there is also a new status 'change', which is the change from 'nothing' to the first status for PO that is 'WAPPR' . For PO there is no 'NEW' status. So the record you're seeing in the POSTATUS table is not from your script, but from the create action of the interface.
For status changes you should use the default application action. This will change the status on the record AND create an entry in the correct status table (POSTATUS in this case). Go to->System Configuration->Platform configuration->Actions. Create new action. Set object to PO, Type to 'Change Status' and value to 'APPR'.
Use this action in your workflow. Or directly in the escalation.
Don't worry to much about escalations that run every 5min. You can even use a new status 'NEW' as synonym for 'WAPPR' to distinguish between normal records and the just interfaced ones. That way you can also hide them from your users in the PO application.
Hope that helps.

TFS RM - Release - Commits details

Does anyone knows how the commits from a release are determined?
From my tests it resulted that is taking into the consideration the last commit even if that commit was associated with a build was triggered couple of builds ago.
In the below screenshots it's displayed that all three last releases are using changeset 47512 which quite confusing for me:
Release 10-01:
Release 09-01:
Release 08-01:
Release shows the difference between w.r.t last release. While showing the difference, it shows the difference between the builds used in the two releases.
Let me explain with some example. Say there are Release1 (with buildA having commit A,B,C) , Release2(with buildB having commit D,E,F) and Release3 (with buildC having commit G,H,,I) and Release4 (with buildC having commit G,H,I).
Here commit tab of Release3 will show the diff w.r.t Release2 and it should show G,H,I.
Similarly commit tab of Release4 will show the diff w.r.t Release3 and it should show 'No diff' as build used is same.

Is credit card transaction expected to be declined for test transaction?

I am doing some development using payflow api
I created test only payflow account. (Transaction Process Mode = Test)
My program uses secure token with hosted check out page.
When I submit my credit card info in the hosted checkout page, the error URL of my program gets called with error code "12" transaction declined.
I try manual testing the payment by going to Paypal Manager-->Virtual Terminal-->Single Transaction. I filled up all the info (along with actual credit card details) and I got the same error - Result Code = 12. Response Message = Declined.
But when I click on "Transaction Details" --> Response Message (Declined) "Click here for fraud details"; it says "Status" as "Passed".
I tried this for both transaction type Sale and Authorize.
So is the error code 12 and Response message "Declined" is because of "Transaction Mode" is Test?
some extra info:
TYPE = 'S'
PREFPSMSG = 'No Rules Triggered'
RESPMSG = 'Declined'
RESULT = '12'
Payflow and Braintree (I believe) give you different results based on what amount so that you can test decline, etc. Make sure your test amount is less than $1001.