Abap 如何在同一系统中的客户端之间复制ALV布局?

Abap 如何在同一系统中的客户端之间复制ALV布局?,abap,alv,Abap,Alv,我将ALV布局保存在存在数据的系统中,但无法从测试系统(存在测试数据的系统)传输这些变体。所以,我必须在开发系统中创建相同的布局变量,这是不可能的,因为缺少测试数据。请提供实现这一目标的方法 据我所知,没有标准的方法可以做到这一点。如果没有太多的变体,我建议你无脑复制。(我认为您可以在没有任何数据的情况下复制每个布局选项)对于许多要复制的变体,您可以编写一个程序上传到DEV系统以节省时间 请注意这一点,因为它会修改标准表!这个 系统版本、ALV结构应与以前的记录相同 不应出现任何变体,否则会产生

我将ALV布局保存在存在数据的系统中,但无法从测试系统(存在测试数据的系统)传输这些变体。所以,我必须在开发系统中创建相同的布局变量,这是不可能的,因为缺少测试数据。请提供实现这一目标的方法

据我所知,没有标准的方法可以做到这一点。如果没有太多的变体,我建议你无脑复制。(我认为您可以在没有任何数据的情况下复制每个布局选项)对于许多要复制的变体,您可以编写一个程序上传到DEV系统以节省时间

请注意这一点,因为它会修改标准表!这个 系统版本、ALV结构应与以前的记录相同 不应出现任何变体,否则会产生意想不到的结果

SAP将ALV变体存储在表LTDX和LTDXT中。LTDX包含原始格式的变量属性。您可以使用SE16将原始数据从测试系统下载到以制表符分隔的文件中,并使用开发的程序上载到开发人员系统

不要使用此程序上载到生产系统或其他系统,请继续 使用程序
RKKBALVI
进行传输。之后一定要尝试结果 上传到开发者,永远

LTDX-RELID始终为“LT”,LTDX-REPORT是您感兴趣的程序名称。不要忘记编辑文件以满足您的需要(例如,如果需要,请删除标题和mandant)。检查下载的文件时,可以看到CLUSTD字段的原始十六进制转储

这个概念来自这样一个想法,即您可以轻松地将十六进制内容从字符串类型移动到二进制类型字段。请参阅调试器中一个小示例程序中的示例。('41424150'以十六进制表示='ABAP'以ASCII表示)


因此,您必须开发一个程序,使用
cl_gui_frontend_services=>gui_upload
将下载文件的内容上载到LTDX和LTDXT,但首先将导入结构的CLUSTD字段定义为string。导入数据时,您可以将内容移动到真实的LTDX结构并更新表格。

在注释aka FAQ:ALV layout中对布局传输问题进行了相当清晰的审查

,您可以将ALV布局传输到另一个系统,除非它们是特定于用户的。这是通过自定义请求在ALV布局管理中完成的:

主菜单->设置->布局->管理


特定于用户的布局不可传输,只有所有用户的布局都具有此功能。

您还可以使用程序RKKBALVI在客户端之间复制布局。例如,我们必须在客户端100中开发和配置,所有传输都来自客户端100,但在客户端600中测试。
所以,开发报告,在600中测试它,并在600中创建布局。然后,在100中,运行RKKBALVI,输入程序名并执行。从那里(列表可能为空),使用菜单选项环境>导入布局。它将请求源客户机,输入您的测试客户机。选择要复制的布局,然后使用导入图标(或F8)。
这将复制布局到您的客户,在我们的情况下是100。然后我可以使用相同的程序将它们添加到传输中。因此,我现在可以从100释放传输来传输报告和布局。

我认为OP无法传输,因为在测试中无法创建和释放传输请求@Rajasekharreddy Panditi?这取决于具体的SAP环境和OP授权,这超出了问题的范围。是的,在测试环境中创建和发布传输请求是不可能的,这正是我们要解决的问题。除了在dev环境中维护测试数据之外,我还希望有一种替代方法来实现这一点。谢谢-我怀疑你能否成功找到替代方法。我试图通过在代码中注释验证来显示没有任何数据的ALV。简而言之,我只是显示了ALV标题并保存了标题。我担心这是否会奏效,因为它已经投入生产。有什么建议吗?