找回密码
 立即注册

QQ登录

只需一步,快速开始

一鹏

高级会员

76

主题

508

帖子

1078

积分

高级会员

积分
1078
一鹏
高级会员   /  发表于:2023-3-21 12:46  /   查看:1671  /  回复:7
50金币
本帖最后由 一鹏 于 2023-3-22 09:16 编辑

在把外联数据库转换成内联表时,发生了错误,错误报告如下,但我没看明白,于是我自己排查,找到了两个表,这两个表我也没发现有啥问题,甚至除了id列根本就没有设置必须之类的,所以不知道这"值不能为null"的错误出在了哪里,求大神指点

## Overview
- Version: 8.0.6.0
- Exception: `System.ArgumentNullException`
- DateTime: 2023-03-21 12:38:46
- Tags: #CN, #COLLABORATION

## Exception
```json
{
  "ClassName": "System.ArgumentNullException",
  "Message": "值不能为 null。",
  "Data": {
    "$type": "System.Collections.ListDictionaryInternal, mscorlib",
    "System.Object": null
  },
  "InnerException": null,
  "HelpURL": null,
  "StackTraceString": "   在 System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   在 System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   在 System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
   在 Forguncy.Common.CollaborationExecutor.GetDistinctRelateModules(IEnumerable`1 relatedModules)
   在 Forguncy.Common.CollaborationExecutor.CanExecute()
   在 Forguncy.Views.RibbonView.b(Boolean A_0)
   在 Forguncy.Views.RibbonView.MigrateTablesButtonToExternal_Click(Object sender, RoutedEventArgs e)
   在 System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   在 System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   在 System.Windows.Controls.Primitives.ButtonBase.OnClick()
   在 System.Windows.Controls.Button.OnClick()
   在 System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   在 System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   在 System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   在 System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   在 System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   在 System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   在 System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   在 System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   在 System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   在 System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   在 System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   在 System.Windows.Input.InputManager.ProcessStagingArea()
   在 System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   在 System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   在 System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   在 System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   在 System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   在 MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   在 MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)",
  "RemoteStackTraceString": null,
  "RemoteStackIndex": 0,
  "ExceptionMethod": "8
ThrowArgumentNullException
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.ThrowHelper
Void ThrowArgumentNullException(System.ExceptionArgument)",
  "HResult": -2147467261,
  "Source": "mscorlib",
  "WatsonBuckets": null,
  "ParamName": "key"
}
```

## EventLog
- 12:38:45 `MouseL`:Window:转换外联表->Button:确定->确定
- 12:38:43 `MouseL`:Window:转换外联表->CheckBox:
- 12:38:42 `MouseL`:Window:转换外联表->CheckBox:
- 12:38:41 `MouseL`:Window:转换外联表->CheckBox:
- 12:38:40 `MouseL`:Window:转换外联表->CheckBox:选择所有
- 12:38:36 `MouseL`:Window:sales-8.0.6版本 - 活字格->RibbonView->RibbonGroupBox:外部数据源->Image:/ConvertToExternal.png
- 12:38:27 `MouseL`:Window:提示->Button:确定
- 12:38:25 `MouseL`:Window:转换外联表->Button:确定->确定
- 12:38:23 `MouseL`:Window:转换外联表->CheckBox:
- 12:38:21 `MouseL`:Window:转换外联表->CheckBox:
- 12:38:18 `MouseL`:Window:sales-8.0.6版本 - 活字格->RibbonView->RibbonGroupBox:外部数据源->Image:/ConvertToExternal.png
- 12:38:13 `MouseL`:Window:提示->Button:确定->确定
- 12:38:08 `MouseL`:Window:转换外联表->Button:确定->确定
- 12:38:05 `MouseL`:Window:转换外联表->CheckBox:
- 12:38:01 `MouseL`:Window:sales-8.0.6版本 - 活字格->RibbonView->RibbonGroupBox:外部数据源->Inline:转换内建表
- 12:37:58 `MouseL`:Window:错误报告->不发送
- 12:37:56 `MouseL`:Window:转换外联表->Button:确定->确定
- 12:37:54 `MouseL`:Window:转换外联表->CheckBox:
- 12:37:52 `MouseL`:Window:sales-8.0.6版本 - 活字格->RibbonView->RibbonGroupBox:外部数据源->Inline:转换内建表
- 12:37:44 `MouseL`:Window:提示->Button:确定
- 12:37:41 `MouseL`:Window:转换外联表->Button:确定->确定
- 12:37:39 `MouseL`:Window:转换外联表->CheckBox:
- 12:37:38 `MouseL`:Window:转换外联表
- 12:37:36 `MouseL`:Window:sales-8.0.6版本 - 活字格->RibbonView->RibbonGroupBox:外部数据源->Inline:转换内建表
- 12:37:33 `MouseL`:Window:错误报告->不发送
- 12:37:30 `MouseL`:Window:转换外联表->Button:确定
- 12:37:28 `MouseL`:Window:转换外联表->CheckBox:
- 12:37:27 `MouseL`:Window:转换外联表->CheckBox:
- 12:37:25 `MouseL`:Window:转换外联表
- 12:37:24 `MouseL`:Window:转换外联表->CheckBox:
- 12:37:23 `MouseL`:Window:转换外联表->CheckBox:


7 个回复

倒序浏览
一鹏
高级会员   /  发表于:2023-3-22 09:13:09
来自 7#
最终原因就是在活字格7设置的工作流,由于8的新型工作流我还没理解透,所以没改原来的审批,开启工作流的表,似乎有好几个附属表,在8里边可能就识别不了,但是我下载了最新的9,一次性转换成功,但我还没想明白,怎么把活字格7的审批流程变过来
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2023-3-21 16:13:57
板凳
大佬好,能不能将外联库表的 SQL 脚本也贴一下,并说明下外联数据库的版本,这边去创建下表尝试去做下转换,去复现调查下上面的问题。
回复 使用道具 举报
一鹏
高级会员   /  发表于:2023-3-22 08:36:28
地板
这个表呢,是在活字格创建的,创建完之后再转换成外联表的,并不是外联数据库直接创建的表
数据库 mysql8

/*
Navicat Premium Data Transfer

Source Server         :
Source Server Type    : MySQL
Source Server Version : 80030
Source Host           :
Source Schema         :

Target Server Type    : MySQL
Target Server Version : 80030
File Encoding         : 65001

Date: 22/03/2023 08:34:00
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for 报销登记表
-- ----------------------------
DROP TABLE IF EXISTS `报销登记表`;
CREATE TABLE `报销登记表`  (
  `ID` bigint(0) NOT NULL AUTO_INCREMENT,
  `业务类型` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `报销内容` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `报销金额` double NULL DEFAULT NULL,
  `报销人` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `日期` datetime(0) NULL DEFAULT NULL,
  `部门` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `附件` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `删除` bigint(0) NULL DEFAULT 0,
  `删除日期` datetime(0) NULL DEFAULT NULL,
  `FGC_AssignTo` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `FGC_State` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `FGC_Creator` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `FGC_CreateDate` datetime(0) NULL DEFAULT NULL,
  `FGC_LastModifier` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `FGC_LastModifyDate` datetime(0) NULL DEFAULT NULL,
  `FGC_Rowversion` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0),
  `FGC_UpdateHelp` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE,
  UNIQUE INDEX `ID`(`ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 31 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2023-3-22 08:52:36
4#
可以先看一下是不是外联库中有活字格不支持的字段,

连接到MySQL和MariaDB - 活字格V8帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)

实在无法处理的话,可以先填一下我们这边的1V1申请:https://www.grapecity.com.cn/applyonline
通过申请后会有专门的人联系您,帮处理这个问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
一鹏
高级会员   /  发表于:2023-3-22 08:58:51
5#
我还在持续转换中突然发现,几个转换不回来的表,都开启了工作流,活字格7的工作流,升级成8之后,虽然还在正常用,但是转换不回来了?
回复 使用道具 举报
一鹏
高级会员   /  发表于:2023-3-22 09:10:30
6#
尝试使用活字格9转换成功,所有表格都成功转换过来了,自己解决了
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2023-3-22 10:04:31
8#
有点奇怪,可能是9.0改了一些策略,需要具体调查的话,
可以填一下上面的链接~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部