@Override
    public MissingReferences call() throws PortalException {
      Map<String, Serializable> settingsMap = _exportImportConfiguration.getSettingsMap();

      long userId = MapUtil.getLong(settingsMap, "userId");
      long targetPlid = MapUtil.getLong(settingsMap, "targetPlid");
      long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
      String portletId = MapUtil.getString(settingsMap, "portletId");
      Map<String, String[]> parameterMap = (Map<String, String[]>) settingsMap.get("parameterMap");

      long sourcePlid = MapUtil.getLong(settingsMap, "sourcePlid");
      long sourceGroupId = MapUtil.getLong(settingsMap, "sourceGroupId");
      DateRange dateRange =
          ExportImportDateUtil.getDateRange(
              _exportImportConfiguration, ExportImportDateUtil.RANGE_FROM_LAST_PUBLISH_DATE);

      File larFile = null;
      MissingReferences missingReferences = null;

      try {
        larFile =
            LayoutLocalServiceUtil.exportPortletInfoAsFile(
                sourcePlid,
                sourceGroupId,
                portletId,
                parameterMap,
                dateRange.getStartDate(),
                dateRange.getEndDate());

        markBackgroundTask(_backgroundTaskId, "exported");

        missingReferences =
            LayoutLocalServiceUtil.validateImportPortletInfo(
                userId, targetPlid, targetGroupId, portletId, parameterMap, larFile);

        markBackgroundTask(_backgroundTaskId, "validated");

        LayoutLocalServiceUtil.importPortletInfo(
            userId, targetPlid, targetGroupId, portletId, parameterMap, larFile);
      } finally {
        larFile.delete();
      }

      return missingReferences;
    }