Bundle synchronization in B2C project - sap-commerce-cloud

I am working on a B2C project.
We are using customized bundle implementation in our project.
However we were struggling with making bundle synchronization work.
With some effort, we managed to find the ImpEx to synchronize the Bundle:
UPDATE CatalogVersionSyncJob;code[unique=true];roottypes(code)[mode=append];
;$syncJobCode;BundleTemplate,BundleTemplateStatus;
However, I am worried whether this will also synchronize the ChangeProductPriceBundleRule available out of the box.
Also how do I synchronize this from backoffice?Is running this cronjob from the Backoffice the only solution?How do Backoffice users see a Synchronize button?Is creating a separate node necessary?

How to synchronize from backoffice?
Go to Backoffice
System -> Background Processes -> Jobs
Search for your sync job and use Sync button for panel
Is running this cronjob from the Backoffice the only solution?
You can schedule this job to run on specific interval (Cron Job)
Is creating a separate node necessary?
Not necessarily but you can customize if you want.
Hope it helps!

Related

How to get current workflow properties from node.js?

I have several GitHub actions created with workflow *.yml files. They run automated tests.
On each scheduled run of these workflows, I need to get some properties from the current workflow from my node.js code that is running. For example name.
How do I do that?

Gitlab issue close automatically

I wonder if there is a way to close a issue automatically at a certain time like every Friday at 18:00 if that issue has a label or something like that.
GitLab did not include such a feature.
They use their own bot to triage issues and merge requests.
This isn't a feature of GitLab itself. However, you could run a scheduled pipeline that uses the issues API to do this.
To make sure the scheduled pipeline has the properly scoped API access, you can generate a project access token and place it in the CI/CD variables.
The scheduled pipeline does not even necessarily have to be configured in the same project in which you want issues to be expired, if you're concerned about it triggering existing pipeline jobs. For example, you can create a new project called "issue cleanup" and setup the pipeline there to cleanup issues of one or more other projects on the schedule

Script Deployment Management Tool for NetSuite

We are looking at removing developers from production and want a simple kind of deployment management tool. One suggestion that some members are using with SalesForce is Jenkins. I have never used Jenkins or any kind of deployment tool before. I normally just copied my code from IDE and updated the file in the SuiteScript file cabinet.
Does Jenkins work for NetSuite? Or what do you recommend for this purpose?
We are planning to use Bit Bucket (which runs Git in the background) as our version control in case that matters.
Thank you for any help
IMO the greatest challenge in integrating with any CI environment(be it Jenkins or any other) is the fact that you can move code files from one system to another using code/APIs but, NOT things like scripts, custom records, fields its deployments , etc. for which you need a bundling process and hence, manual intervention.
NetSuite in recent Suiteworld 2015 said that its coming up "Change Management" which would allow you to put everything that is part of your app to version control system such as git. Please see SuiteAnswer Id 42387, when this feature is rolled out, you can integrate with your CI tool to automatically copy/deploy your app details to an another NetSuite account and run your tests there and accordingly pass/fail your build.
Why do you want to remove developers from Production? This will severely hamper their ability to create solutions for your NetSuite account and will create a ton of overhead for them.
If you must have them out of Production, then probably your "best" option would be to have them build their solutions in Sandbox and then use SuiteBundles for deployment to Production. A Production Admin would need to update the appropriate Bundle(s) for all Production migrations.
NetSuite has also built a SuiteCloud IDE plugin for Eclipse which allows uploading and downloading files (no copy-paste necessary), so if you're not using that I would recommend it.
We are using Jenkins for our own internal automated testing, but not for deployment into NetSuite. I do not know if someone has already built a NetSuite plugin for Jenkins; it is likely you would have to build your own file upload mechanism using the NetSuite Web Services SOAP API, but that would still only allow deployment of source files. Developers will most likely also need to be creating and updating custom records, fields, lists as well as Script records and Script Deployment records, which you will not be able to do through Jenkins or any other tool that I know of.

Jenkins user-based job security

I have just a single instance of jenkins on a local machine which we are using to build our code. We have different project teams working on different projects, and different jobs for each project.
To eliminate the possibility of someone from one team accidentally messing up another team's job, i have created multiple jenkins users.
However, all of the users that can log on still see all of the jobs. Is there a way for certain users to only see the jobs that pertain to them?
I have searched extensively for something like this but no luck. I haven't found any plugins for this. I am using matrix based security currently, and although you can change the permissions of all the users through this, you can not apply specific permissions to specific jobs. At least to my knowledge. Any ideas?
Just to clarify, I want one of the many teams to log in to their user account in jenkins, and only see their jobs. The jobs of the other teams should not be visible, only the ones that they are assigned should be visible when they log on
The closest thing i have found for this is in the Role Strategy Plugin, there is a user-based job filter
Turns out there is a feature already in jenkins for this, no plugins necessary!
In the Configure Global Security section in Manage Jenkins, click "Project-based matrix authorization strategy".
Then you can configure permissions in the job configure screen for that particular job by clicking "enable project-based security".
Now you can configure your Jenkins so that "Joe can access project A, B, and C but he can't see D".

Is it possible to start only one of the roles of the deployment for local integration testing purposes?

We have a project which contains one web role and one worker role.
I want to run integration tests for the worker role on the local computer but I do not know how to start only the instance of the worker role in order to just run the tests. I do not want to start the web role for the integration tests because I do not need it.
In a separate project where the worker role was alone it was really nice and easy to do it.
Is it a good idea to create a separate solution (and then in the source control too) which contains only the worker and its tests? This way I will have the projects in the main solution which is the one which gets deployed but I will not "spoil" this solution with integration tests which are not "executable" in TFS online.
Is it generally a good idea of having separate solutions for integration testing in order not to spoil the main solution with tests that are not executable in TFS (be it TFS online or on premise)? We usually place my unit tests in a project in the main solution which tests get executed after TFS build the app.
I tried a solution which looks fine. Let me explain.
Branch structure :
dev
src
Main.Web
Main.Model
Main.Persistence
Main.Worker1
Main.Worker2
integrationTests
Main.Worker1
Main.Worker1.IntegrationTests (.dll)
Worker.IntegrationTest.CloudService (which starts the worker only locally)
prod
I have create a .sln in "integrationTests" in which I added Main.Worker1 included it in source control. Making it so gives me free space for integration tests in separate solution which refers to the original projects. Now I can start two instances of VS, start the integration test and debug the worker project line by line if I wish.
A good side effect is that when I merge code to prod branch I will not spoil it with integration tests.
If somebody finds a better solution it will be great to post it.

Resources