AWSTemplateFormatVersion: "2010-09-09" Description: > Appflow samples for SAP accelerators, masterdata text extraction ## To use this template, you must have installed the below extractors and created their service as per pre-requisites. Once you have, simply find and replace the service details for each ## By default this schedules the below flows to run once daily ## 0CUST_GRP_1_TEXT - /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP1_TEXT ## 0CUST_GRP_2_TEXT - /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP2_TEXT ## 0CUST_GRP_3_TEXT - /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP3_TEXT ## 0CUST_GRP_4_TEXT - /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP4_TEXT ## 0CUST_GRP_5_TEXT - /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP5_TEXT ## 0MATL_GRP_1_TEXT - /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_1_TEXT ## 0MATL_GRP_2_TEXT - /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_2_TEXT ## 0MATL_GRP_3_TEXT - /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_3_TEXT ## 0MATL_GRP_4_TEXT - /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_4_TEXT ## 0MATL_GRP_5_TEXT - /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_5_TEXT Parameters: ConnectorName: Description: The name of the SAP source system connection Type: String DestinationS3BucketName: Description: Name of the Destination S3 Bucket Type: String AppFlowSAPStartTime: Description: EPOC date of first run for flow Type: Number Resources: # Create Amazon AppFlow to pull data from SAP and store into S3. These examples are for full data loads, daily. ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfcustgrp1: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_cust_grp_1 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0CUST_GRP_1' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP1_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfcustgrp2: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_cust_grp_2 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0CUST_GRP_2' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP2_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfcustgrp3: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_cust_grp_3 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0CUST_GRP_3' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP3_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfcustgrp4: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_cust_grp_4 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0CUST_GRP_4' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP4_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cf0custgrp5: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_cust_grp_5 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0CUST_GRP_5' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZCUSTOMER_SRV/EntityOf0CUST_GRP5_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfmatlgrp1: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_matl_grp_1 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0MATL_GRP_1' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_1_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfmatlgrp2: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_matl_grp_2 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0matl_GRP_2' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_2_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfmatlgrp3: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_matl_grp_3 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0matl_GRP_3' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_3_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfmatlgrp4: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_matl_grp_4 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0matl_GRP_4' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_4_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP ## Each resource name needs to be different on each copy eg. SAPtoS3Flow1, SAPtoS3Flow2, etc. cfmatlgrp5: Type: AWS::AppFlow::Flow Properties: ## This is the unique technical name for the flow, ideally name this related to the data being loaded FlowName: cf_matl_grp_5 FlowStatus: Active Description: 'Pull data from SAP and saves into S3 for 0matl_GRP_5' TriggerConfig: TriggerType: Scheduled TriggerProperties: DataPullMode: Complete ## If you wish to extract the masterdata more often than once daily, change the value here ScheduleExpression: rate(1day) ## Ensure your scheduled Start Time is in the future in EPOC format ScheduleStartTime: !Ref AppFlowSAPStartTime SourceFlowConfig: ConnectorProfileName: !Ref ConnectorName ConnectorType: SAPOData SourceConnectorProperties: SAPOData: ## The ObjectPath is specific to the service and extractor assignment ObjectPath: /sap/opu/odata/sap/ZMATERIAL_SRV/EntityOf0MATL_GRP_5_TEXT DestinationFlowConfigList: - ConnectorType: S3 DestinationConnectorProperties: S3: BucketName: !Ref DestinationS3BucketName S3OutputFormatConfig: FileType: JSON AggregationConfig: aggregationType: None PrefixConfig: PrefixFormat: DAY PrefixType: PATH_AND_FILENAME Tasks: - TaskType: Map_all SourceFields: [] TaskProperties: - Key: EXCLUDE_SOURCE_FIELDS_LIST Value: '[]' ConnectorOperator: SAPOData: NO_OP