Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 如何从生产环境中刷新NetSuite沙盒代码(仅限)?_Version Control_Netsuite_Suitescript - Fatal编程技术网

Version control 如何从生产环境中刷新NetSuite沙盒代码(仅限)?

Version control 如何从生产环境中刷新NetSuite沙盒代码(仅限)?,version-control,netsuite,suitescript,Version Control,Netsuite,Suitescript,从生产环境中刷新NetSuite沙盒(仅限代码) 我意识到我们可以从生产中刷新沙盒,但我们不想刷新整个沙盒,而是要刷新NetSuite SuiteScript、NetSuite表单和UI对象 NetSuite专有的基础架构/代码及其带来的挑战 几个星期以来,我一直拒绝问这个问题,因为我觉得这个问题太基本了,但事实并非如此。在使用NetSuite一段时间后,很明显源代码和数据之间的界限变得模糊,我认为这正是刷新代码的挑战所在 我还了解到,在版本控制软件中存储NetSuite代码几乎是不可能的(对于

从生产环境中刷新NetSuite沙盒(仅限代码)

我意识到我们可以从生产中刷新沙盒,但我们不想刷新整个沙盒,而是要刷新NetSuite SuiteScript、NetSuite表单和UI对象

NetSuite专有的基础架构/代码及其带来的挑战

几个星期以来,我一直拒绝问这个问题,因为我觉得这个问题太基本了,但事实并非如此。在使用NetSuite一段时间后,很明显源代码和数据之间的界限变得模糊,我认为这正是刷新代码的挑战所在

我还了解到,在版本控制软件中存储NetSuite代码几乎是不可能的(对于所有代码而言),这让我相信,只刷新代码的愿望也可能是不可能的。我想知道,当涉及到控制和修改业务逻辑时,受SOX法规遵从性问题困扰的IT部门如何能够满足审计员的要求

刷新沙盒代码的真正问题和原因

我刷新沙盒代码的动机是,我们在沙盒帐户中遇到了某些表单(发票和估价)的意外行为,其中自定义税务字段(Ava tax)神秘地从“项目”选项卡移动到包含交易主体字段的选项卡!在一年多的时间里,该表单似乎没有被任何人更新过,并且沙箱中没有安装可能破坏该表单的软件包

如果我无法刷新源代码,在知道NetSuite表单以专有方式存储并且没有明显的源代码可用的情况下,是否有方法确定NetSuite表单是如何损坏的?我知道大部分NetSuite代码都是在服务器和客户机上运行的JavaScript,有些部分是NetSuite之外的任何人都无法使用的


欢迎提供任何解决方案或建议。

在源代码管理中存储NetSuite代码并非不可能。我们使用git跟踪所有NetSuite源代码,并遵循与gitflow类似的过程。我们的
master
分支始终与生产保持同步。只要我们将代码推到生产环境中,它就会从其功能/修复分支合并到
master
,并标记为发行版。如果我们想回滚,我们只需还原
master
back提交并将整个项目上载到文件柜。然后,如果我们想刷新一个沙箱以匹配生产,我们只需签出
master
,然后将所有这些内容上传到沙箱

沙盒本身很难与源代码中的单个分支保持同步,因为我们不断地在单独的功能分支上进行开发


如果您还没有这样的系统,那么您真正需要做的就是从生产文件柜下载SuiteScripts文件夹的zip,并将其上载到您的沙箱。

这不是源代码管理,但您可以使用SuiteBundler在帐户之间复制项目。SuiteBundler允许您从表单、脚本和自定义记录中进行选择。稍后,您可以卸载捆绑包或将其分解到帐户中。

用几句话来解释并不容易,但是:您可以使用部署帐户使事情正常工作。因此,您可以继续处理dev帐户,并使用多个bundle/bundle版本进行后续分支/版本的定制。只有在版本稳定且生产环境始终从部署(而不是从开发人员)安装/更新捆绑包版本时,才可以从开发人员将捆绑包更新到部署帐户。由于bundle是可版本化和无限的,您可以使用git+dev+deploy帐户来管理Cvs。要获取表单的可版本版本,只需在url中以任何形式添加&xml=t即可。但这是只读的

感谢您的回答,证实了我认为在源代码管理中存储NetSuite代码是不可能的。所以从技术上讲,表单更改永远不会反映在版本控制中,因为可能没有与之关联的源文件。这是真正让我震惊的部分,SOX的商店如何处理这个巨大的问题?我将把这个问题留一天左右,看看是否有其他人提供反馈。啊,是的,目前没有办法对表单更改或自定义记录等内容进行源代码管理。NetSuite确实为此提供了SuiteBundles,但仍然无法进行源代码控制。NetSuite确实宣布,某种形式的XML导出已经出现在路线图上,因此您可以将自定义字段、表单和记录等导出到XML文件中,该文件也可以导入到另一个帐户中。这个XML当然是可以控制的,但现在它只是他们路线图上的一个项目,没有什么实质性的东西。我喜欢在适当的时候给予赞扬。SuiteBundler是一个很好的工具。我已经有一段时间没有使用NetSuite了——事实证明,从典型的客户机-服务器应用程序迁移是很困难的,更不用说在年纪较大的时候同时学习JavaScript和NetSuite DOM/API了。