2

从生产中刷新 NetSuite 沙箱(仅代码)

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

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

我拒绝问这个问题好几个星期,认为它太基本了,但看起来并不是这样。在使用 NetSuite 一段时间后,源代码和数据之间的界限变得很明显变得模糊,我认为这正是使代码更新具有挑战性的原因。

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

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

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

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

欢迎和赞赏任何解决方案或建议。

4

3 回答 3

3

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

沙箱本身更难与源代码中的单个分支保持同步,因为我们一直在单独的功能分支上进行开发。

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

于 2015-08-07T17:25:46.683 回答
1

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

于 2015-08-08T11:47:17.967 回答
1

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

于 2016-03-24T09:00:05.260 回答