I built a working node.js Express app using the tutorial "Deploy Express.js to Azure App Service using Visual Studio Code", see:
https://learn.microsoft.com/en-us/azure/developer/javascript/tutorial/deploy-nodejs-azure-app-service-with-visual-studio-code?tabs=bash.
This first version was deployed and worked successfully using only Get requests.
I made some minor changes to include Post requests and deployed that update. This takes 18 minutes to deploy, but the new version is not served to my browser, just the old version. Going to my Azure dashboard and clicking my app service and selecting Browse there, it still shows the old version 2 days after the successful update deploy.
Another problem is that after a long time, say overnight, a request to the app's api does not get answered. My Safari browser says the server stopped responding. But a second request immediately after does get a response, but still with the same old version.
This JSON file may be useful.
{
"id": "/subscriptions/3603adff-9823-408c-980c-ea71f06376ce/resourceGroups/AcesTraderExpress-rg/providers/Microsoft.Web/sites/AcesTraderExpress",
"name": "AcesTraderExpress",
"type": "Microsoft.Web/sites",
"kind": "app,linux",
"location": "East US",
"properties": {
"name": "AcesTraderExpress",
"state": "Running",
"hostNames": [
"acestraderexpress.azurewebsites.net"
],
"webSpace": "AcesTraderExpress-rg-EastUSwebspace-Linux",
"selfLink": "https://waws-prod-blu-217.api.azurewebsites.windows.net:454/subscriptions/3603adff-9823-408c-980c-ea71f06376ce/webspaces/AcesTraderExpress-rg-EastUSwebspace-Linux/sites/AcesTraderExpress",
"repositorySiteName": "AcesTraderExpress",
"owner": null,
"usageState": 0,
"enabled": true,
"adminEnabled": true,
"enabledHostNames": [
"acestraderexpress.azurewebsites.net",
"acestraderexpress.scm.azurewebsites.net"
],
"siteProperties": {
"metadata": null,
"properties": [
{
"name": "LinuxFxVersion",
"value": "NODE|14-lts"
},
{
"name": "WindowsFxVersion",
"value": null
}
],
"appSettings": null
},
"availabilityState": 0,
"sslCertificates": null,
"csrs": [],
"cers": null,
"siteMode": null,
"hostNameSslStates": [
{
"name": "acestraderexpress.azurewebsites.net",
"sslState": 0,
"ipBasedSslResult": null,
"virtualIP": null,
"thumbprint": null,
"toUpdate": null,
"toUpdateIpBasedSsl": null,
"ipBasedSslState": 0,
"hostType": 0
},
{
"name": "acestraderexpress.scm.azurewebsites.net",
"sslState": 0,
"ipBasedSslResult": null,
"virtualIP": null,
"thumbprint": null,
"toUpdate": null,
"toUpdateIpBasedSsl": null,
"ipBasedSslState": 0,
"hostType": 1
}
],
"computeMode": null,
"serverFarm": null,
"serverFarmId": "/subscriptions/3603adff-9823-408c-980c-ea71f06376ce/resourceGroups/AcesTraderExpress-rg/providers/Microsoft.Web/serverfarms/AcesTraderExpress-plan",
"reserved": true,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2021-11-24T21:28:18.1666667",
"storageRecoveryDefaultState": "Running",
"contentAvailabilityState": 0,
"runtimeAvailabilityState": 0,
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": null,
"netFrameworkVersion": null,
"phpVersion": null,
"pythonVersion": null,
"nodeVersion": null,
"powerShellVersion": null,
"linuxFxVersion": "NODE|14-lts",
"windowsFxVersion": null,
"requestTracingEnabled": null,
"remoteDebuggingEnabled": null,
"remoteDebuggingVersion": null,
"httpLoggingEnabled": null,
"azureMonitorLogCategories": null,
"acrUseManagedIdentityCreds": false,
"acrUserManagedIdentityID": null,
"logsDirectorySizeLimit": null,
"detailedErrorLoggingEnabled": null,
"publishingUsername": null,
"publishingPassword": null,
"appSettings": null,
"metadata": null,
"connectionStrings": null,
"machineKey": null,
"handlerMappings": null,
"documentRoot": null,
"scmType": null,
"use32BitWorkerProcess": null,
"webSocketsEnabled": null,
"alwaysOn": false,
"javaVersion": null,
"javaContainer": null,
"javaContainerVersion": null,
"appCommandLine": null,
"managedPipelineMode": null,
"virtualApplications": null,
"winAuthAdminState": null,
"winAuthTenantState": null,
"customAppPoolIdentityAdminState": null,
"customAppPoolIdentityTenantState": null,
"runtimeADUser": null,
"runtimeADUserPassword": null,
"loadBalancing": null,
"routingRules": null,
"experiments": null,
"limits": null,
"autoHealEnabled": null,
"autoHealRules": null,
"tracingOptions": null,
"vnetName": null,
"vnetRouteAllEnabled": null,
"vnetPrivatePortsCount": null,
"publicNetworkAccess": null,
"cors": null,
"push": null,
"apiDefinition": null,
"apiManagementConfig": null,
"autoSwapSlotName": null,
"localMySqlEnabled": null,
"managedServiceIdentityId": null,
"xManagedServiceIdentityId": null,
"keyVaultReferenceIdentity": null,
"ipSecurityRestrictions": null,
"scmIpSecurityRestrictions": null,
"scmIpSecurityRestrictionsUseMain": null,
"http20Enabled": false,
"minTlsVersion": null,
"scmMinTlsVersion": null,
"ftpsState": null,
"preWarmedInstanceCount": null,
"functionAppScaleLimit": 0,
"healthCheckPath": null,
"fileChangeAuditEnabled": null,
"functionsRuntimeScaleMonitoringEnabled": null,
"websiteTimeZone": null,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": null,
"sitePort": null
},
"deploymentId": "AcesTraderExpress",
"slotName": null,
"trafficManagerHostNames": null,
"sku": "Free",
"scmSiteAlsoStopped": false,
"targetSwapSlot": null,
"hostingEnvironment": null,
"hostingEnvironmentProfile": null,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": 0,
"clientCertExclusionPaths": null,
"hostNamesDisabled": false,
"domainVerificationIdentifiers": null,
"customDomainVerificationId": "32CA73F9034F12CA2A538C5F30E96A3BDF81DFD04981F8BFE65F69C4E24A69E6",
"kind": "app,linux",
"inboundIpAddress": "20.49.104.15",
"possibleInboundIpAddresses": "20.49.104.15",
"ftpUsername": "AcesTraderExpress\\$AcesTraderExpress",
"ftpsHostName": "ftps://waws-prod-blu-217.ftp.azurewebsites.windows.net/site/wwwroot",
"outboundIpAddresses": "40.76.167.202,52.146.70.44,52.146.70.103,52.146.68.209,52.146.68.246,52.146.69.57,20.49.104.15",
"possibleOutboundIpAddresses": "40.76.167.202,52.146.70.44,52.146.70.103,52.146.68.209,52.146.68.246,52.146.69.57,52.146.70.115,52.146.70.118,52.146.70.158,52.146.66.148,52.146.71.5,40.76.165.150,40.76.167.156,40.76.167.157,52.146.68.142,52.146.64.68,52.146.65.22,52.146.65.23,52.191.239.27,52.191.239.78,52.191.239.120,52.224.200.31,52.224.201.90,52.224.202.78,20.49.104.15",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"suspendedTill": null,
"siteDisabledReason": 0,
"functionExecutionUnitsCache": null,
"maxNumberOfWorkers": null,
"homeStamp": "waws-prod-blu-217",
"cloningInfo": null,
"hostingEnvironmentId": null,
"tags": null,
"resourceGroup": "AcesTraderExpress-rg",
"defaultHostName": "acestraderexpress.azurewebsites.net",
"slotSwapStatus": null,
"httpsOnly": false,
"redundancyMode": 0,
"inProgressOperationId": null,
"geoDistributions": null,
"privateEndpointConnections": [],
"buildVersion": null,
"targetBuildVersion": null,
"migrationState": null,
"eligibleLogCategories": "AppServiceAppLogs,AppServiceAuditLogs,AppServiceConsoleLogs,AppServiceHTTPLogs,AppServiceIPSecAuditLogs,AppServicePlatformLogs,ScanLogs",
"storageAccountRequired": false,
"virtualNetworkSubnetId": null,
"keyVaultReferenceIdentity": "SystemAssigned"
}
}
I am following this website. Initially I am added only Get request and deployed to azure portal using this doc Deploy Node.js Express.js to App Service from Visual Studio Code - Azure | Microsoft Docs.
(Note: Skipped the Local git deployment process).
Directly deployed using Deploy to Web app in Visual Studio Code
Then, I am adding the below code in visual studio with Post Request
Add below code in app.js
const express = require("express");
const port = process.env.PORT || 3000
const bodyParser = require("body-parser")
// App using express node module
const app = express();
app.use(bodyParser.urlencoded({
extended:true
}));
// Get request
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});
// Post Request
app.post("/", function(req, res) {
var num1 = Number(req.body.num1);
var num2 = Number(req.body.num2);
var result = num1 + num2 ;
res.send("Addition - " + result);
});
app.listen(port, function(){
console.log('server is running on port 3000');
})
Added the below code in index.html
< !DOCTYPE html>
< html lang="en" dir="ltr">
< head>
< meta charset="utf-8">
< title>Calculator</title>
< /head>
< body>
< h1>Simple Calculator.< /h1>
< form action="/" method="post">
< input type="text" name="num1" placeholder="First Number">
< input type="text" name="num2" placeholder="Second Number">
< button type="submit" name="submit">
calculator
< /button>
< /form>
< /body>
< /html>
After added Post Method request, I was deployed again in a Azure Web App. (By Default it was deployed in Linux app service).
I can view the results in Browser
I am trying to create a view from 3 different tables. I keep getting an error 'Column 2 in UNION DISTINCT has incompatible types: INT64, STRING, STRING at [165:1]'
What am I doing wrong? The line 165:1 where it is flagging is when the next table starts. Is there a better way to merge 3 tables with different columns?
Below is script for the view
SELECT Date,
Active_View_Impressions__AdWords,
Active_View_Measurable_Cost__AdWords,
Active_View_Measurable_Impressions__AdWords,
All_Conv___AdWords,
SPLIT(Campaign__AdWords,'|')[safe_ordinal(1)] as Location,SPLIT(Campaign__AdWords,'|')[safe_ordinal(2)] as Market_Type,
Click_Assisted_Conv___AdWords,
Clicks__AdWords,
Conversions__AdWords,
Cost__AdWords,
Data_Source_id,
Data_Source_type,
Device__AdWords,
Engagements__AdWords,
Impr__Assisted_Conv___AdWords,
Impressions__AdWords,
Interactions__AdWords,
Invalid_Clicks__AdWords,
Network_With_Search_Params__AdWords,
Total_absolute_top_impressions__AdWords,
Total_Position__AdWords,
Total_top_impressions__AdWords,
Video_views__AdWords,
View_through_Conv___AdWords,
Views__AdWords,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
FROM`inbr.Adwords_02.all_funnel_data_view`
UNION DISTINCT
SELECT Date,
Data_Source_id,
Data_Source_type,
Actions__Facebook_Ads,
Amount_Spent__Facebook_Ads,
Attribution_Window__Facebook_Ads,
Buying_Type__Facebook_Ads,
SPLIT(Campaign_Name__Facebook_Ads,'|')[safe_ordinal(1)] as Market,SPLIT(Campaign_Name__Facebook_Ads,'|')[safe_ordinal(2)] as Market_Type,
Campaign_Objective__Facebook_Ads,
Check_ins__Facebook_Ads,
Clicks_all__Facebook_Ads,
Event_Responses__Facebook_Ads,
Impressions__Facebook_Ads,
Link_Clicks__Facebook_Ads,
n_10_Second_Video_Views__Facebook_Ads,
n_3_Second_Video_Views__Facebook_Ads,
Outbound_Clicks__Facebook_Ads,
Page_Engagement__Facebook_Ads,
Page_Likes__Facebook_Ads,
Page_Mentions__Facebook_Ads,
Page_Tab_Views__Facebook_Ads,
Photo_Views__Facebook_Ads,
Post_Comments__Facebook_Ads,
Post_Engagement__Facebook_Ads,
Post_Reactions__Facebook_Ads,
Post_Shares__Facebook_Ads,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
FROM`inbr.Facebook_Ads_02.all_funnel_data_view`
UNION DISTINCT
SELECT CAST(Date AS DATE) Date,
Data_Source_type,
Data_Source_id,
Campaign,
Data_Source,
Data_Source_name,
Data_Source_type_name,
Ad_legacy__AdWords,
Ad_Group_Name__AdWords,
Ad_Type__AdWords,
SPLIT(Campaign__AdWords,'|')[safe_ordinal(1)] as Market,SPLIT(Campaign__AdWords,'|')[safe_ordinal(2)] as Market_Type,
City__AdWords,
Description__AdWords,
Description_Line_1__AdWords,
Description_Line_2__AdWords,
Device__AdWords,
Expanded_Text_Ad_Description_2__AdWords,
Expanded_Text_Ad_Headline_3__AdWords,
Headline_1__AdWords,
Headline_2__AdWords,
KeywordPlacement__AdWords,
Metro__AdWords,
Network__AdWords,
Network_With_Search_Params__AdWords,
Quality_Score__AdWords,
Region__AdWords,
Clicks__AdWords,
Cost__AdWords,
Engagements__AdWords,
Impressions__AdWords,
Interactions__AdWords,
Invalid_Clicks__AdWords,
Total_absolute_top_impressions__AdWords,
Total_Position__AdWords,
Total_top_impressions__AdWords,
Video_views__AdWords,
Views__AdWords,
Video_impressions__AdWords,
Views_100__AdWords,
Active_View_Impressions__AdWords,
Active_View_Measurable_Cost__AdWords,
Active_View_Measurable_Impressions__AdWords,
All_Conv___AdWords,
Click_Assisted_Conv___AdWords,
Conversions__AdWords,
Impr__Assisted_Conv___AdWords,
SmileSnap_Button_Click_mo_tid_Med___inbr___AdWords_Keyword__AdWords,
Thank_You_Form_mo_tid_Med___inbr___AdWords_Keyword__AdWords,
View_through_Conv___AdWords,
Ad_Name__Facebook_Ads,
Ad_Set_Name__Facebook_Ads,
Age__Facebook_Ads,
Attribution_Window__Facebook_Ads,
Buying_Type__Facebook_Ads,
Campaign_Name__Facebook_Ads,
Campaign_Objective__Facebook_Ads,
Conversion_Device__Facebook_Ads,
Device_Platform__Facebook_Ads,
DMA_Region__Facebook_Ads,
Impression_Device__Facebook_Ads,
Link__Facebook_Ads,
Placement__Facebook_Ads,
Gender__Facebook_Ads,
Platform__Facebook_Ads,
n_10_Second_Video_Views__Facebook_Ads,
n_3_Second_Video_Views__Facebook_Ads,
n_30_Second_Video_Views__Facebook_Ads,
Video_Plays__Facebook_Ads,
Video_thruplay__Facebook_Ads,
Video_Watches_at_100__Facebook_Ads,
Video_Watches_at_25__Facebook_Ads,
Video_Watches_at_50__Facebook_Ads,
Video_Watches_at_75__Facebook_Ads,
Video_Watches_at_95__Facebook_Ads,
Button_Clicks__Facebook_Ads,
Link_Clicks__Facebook_Ads,
Outbound_Clicks__Facebook_Ads,
Check_ins__Facebook_Ads,
Event_Responses__Facebook_Ads,
Page_Engagement__Facebook_Ads,
Page_Likes__Facebook_Ads,
Page_Mentions__Facebook_Ads,
Page_Tab_Views__Facebook_Ads,
Photo_Views__Facebook_Ads,
Post_Comments__Facebook_Ads,
Post_Engagement__Facebook_Ads,
Post_Reactions__Facebook_Ads,
Post_Shares__Facebook_Ads,
Actions__Facebook_Ads,
Amount_Spent__Facebook_Ads,
Clicks_all__Facebook_Ads,
Impressions__Facebook_Ads,
Thank_You_Form_mo_tid_Med___inbr___Facebook_Conversion__Facebook_Ads,
Thank_You_Form_V2_mo_tid_Med___inbr___Facebook_Conversion__Facebook_Ads,
n_100_In_View_Impressions__Facebook_Ads,
Custom_Events__Facebook_Ads,
Landing_Page_Views__Facebook_Ads,
Leads__Facebook_Ads,
Leads_Form__Facebook_Ads,
Ad_Group_ID__The_Trade,
Ad_Group_Name__The_Trade,
Advertiser_ID__The_Trade,
Advertiser_Name__The_Trade,
Advertiser_Total_Cost__The_Trade,
Partner_Cost__The_Trade_1,
Bids__The_Trade,
Campaign_ID__The_Trade,
Campaign_Name__The_Trade,
Clicks__The_Trade,
Impressions__The_Trade,
Partner_ID__The_Trade,
Site__The_Trade,
City__The_Trade,
Country__The_Trade,
Metro__The_Trade,
Region__The_Trade,
Player_25_Complete__The_Trade,
Player_50_Complete__The_Trade,
Player_75_Complete__The_Trade,
Player_Close__The_Trade,
Player_Collapse__The_Trade,
Player_Completed_Views__The_Trade,
Player_Engaged_Views__The_Trade,
Player_Error__The_Trade,
Player_Expansion__The_Trade,
Player_Full_Screen__The_Trade,
Player_Invitation_Accept__The_Trade,
Player_Mute__The_Trade,
Player_Pause__The_Trade,
Player_Resume__The_Trade,
Player_Rewind__The_Trade,
Player_Skip__The_Trade,
Player_Starts__The_Trade,
Player_Unmute__The_Trade,
Player_Views__The_Trade,
Video_Was_Trackable__The_Trade,
Video_Was_Viewable__The_Trade,
n_01___Click_Conversion__The_Trade,
n_02___Click_Conversion__The_Trade,
n_03___Click_Conversion__The_Trade,
n_04___Click_Conversion__The_Trade,
n_05___Click_Conversion__The_Trade,
n_06___Click_Conversion__The_Trade,
n_01___Time_Weighted_Decay_Conversion__The_Trade,
n_02___Time_Weighted_Decay_Conversion__The_Trade,
n_03___Time_Weighted_Decay_Conversion__The_Trade,
n_04___Time_Weighted_Decay_Conversion__The_Trade,
n_05___Time_Weighted_Decay_Conversion__The_Trade,
n_06___Time_Weighted_Decay_Conversion__The_Trade,
n_01___View_Through_Conversion__The_Trade,
n_02___View_Through_Conversion__The_Trade,
n_03___View_Through_Conversion__The_Trade,
n_04___View_Through_Conversion__The_Trade,
n_05___View_Through_Conversion__The_Trade,
n_06___View_Through_Conversion__The_Trade,
n_01___Conversion_Touch__The_Trade,
n_02___Conversion_Touch__The_Trade,
n_03___Conversion_Touch__The_Trade,
n_04___Conversion_Touch__The_Trade,
n_05___Conversion_Touch__The_Trade,
n_06___Conversion_Touch__The_Trade
FROM`inbr.AX_Trade.AX_Trade` ```
According to error message there are type mismatch for column 2 in three tables. So, I have casted second column of first table as string. Please check now.
SELECT Date,
cast(Active_View_Impressions__AdWords as string),
Active_View_Measurable_Cost__AdWords,
Active_View_Measurable_Impressions__AdWords,
All_Conv___AdWords,
SPLIT(Campaign__AdWords,'|')[safe_ordinal(1)] as Location,SPLIT(Campaign__AdWords,'|')[safe_ordinal(2)] as Market_Type,
Click_Assisted_Conv___AdWords,
Clicks__AdWords,
Conversions__AdWords,
Cost__AdWords,
Data_Source_id,
Data_Source_type,
Device__AdWords,
Engagements__AdWords,
Impr__Assisted_Conv___AdWords,
Impressions__AdWords,
Interactions__AdWords,
Invalid_Clicks__AdWords,
Network_With_Search_Params__AdWords,
Total_absolute_top_impressions__AdWords,
Total_Position__AdWords,
Total_top_impressions__AdWords,
Video_views__AdWords,
View_through_Conv___AdWords,
Views__AdWords,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
FROM`inbr.Adwords_02.all_funnel_data_view`
UNION DISTINCT
SELECT Date,
Data_Source_id,
Data_Source_type,
Actions__Facebook_Ads,
Amount_Spent__Facebook_Ads,
Attribution_Window__Facebook_Ads,
Buying_Type__Facebook_Ads,
SPLIT(Campaign_Name__Facebook_Ads,'|')[safe_ordinal(1)] as Market,SPLIT(Campaign_Name__Facebook_Ads,'|')[safe_ordinal(2)] as Market_Type,
Campaign_Objective__Facebook_Ads,
Check_ins__Facebook_Ads,
Clicks_all__Facebook_Ads,
Event_Responses__Facebook_Ads,
Impressions__Facebook_Ads,
Link_Clicks__Facebook_Ads,
n_10_Second_Video_Views__Facebook_Ads,
n_3_Second_Video_Views__Facebook_Ads,
Outbound_Clicks__Facebook_Ads,
Page_Engagement__Facebook_Ads,
Page_Likes__Facebook_Ads,
Page_Mentions__Facebook_Ads,
Page_Tab_Views__Facebook_Ads,
Photo_Views__Facebook_Ads,
Post_Comments__Facebook_Ads,
Post_Engagement__Facebook_Ads,
Post_Reactions__Facebook_Ads,
Post_Shares__Facebook_Ads,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
FROM`inbr.Facebook_Ads_02.all_funnel_data_view`
UNION DISTINCT
SELECT CAST(Date AS DATE) Date,
Data_Source_type,
Data_Source_id,
Campaign,
Data_Source,
Data_Source_name,
Data_Source_type_name,
Ad_legacy__AdWords,
Ad_Group_Name__AdWords,
Ad_Type__AdWords,
SPLIT(Campaign__AdWords,'|')[safe_ordinal(1)] as Market,SPLIT(Campaign__AdWords,'|')[safe_ordinal(2)] as Market_Type,
City__AdWords,
Description__AdWords,
Description_Line_1__AdWords,
Description_Line_2__AdWords,
Device__AdWords,
Expanded_Text_Ad_Description_2__AdWords,
Expanded_Text_Ad_Headline_3__AdWords,
Headline_1__AdWords,
Headline_2__AdWords,
KeywordPlacement__AdWords,
Metro__AdWords,
Network__AdWords,
Network_With_Search_Params__AdWords,
Quality_Score__AdWords,
Region__AdWords,
Clicks__AdWords,
Cost__AdWords,
Engagements__AdWords,
Impressions__AdWords,
Interactions__AdWords,
Invalid_Clicks__AdWords,
Total_absolute_top_impressions__AdWords,
Total_Position__AdWords,
Total_top_impressions__AdWords,
Video_views__AdWords,
Views__AdWords,
Video_impressions__AdWords,
Views_100__AdWords,
Active_View_Impressions__AdWords,
Active_View_Measurable_Cost__AdWords,
Active_View_Measurable_Impressions__AdWords,
All_Conv___AdWords,
Click_Assisted_Conv___AdWords,
Conversions__AdWords,
Impr__Assisted_Conv___AdWords,
SmileSnap_Button_Click_mo_tid_Med___inbr___AdWords_Keyword__AdWords,
Thank_You_Form_mo_tid_Med___inbr___AdWords_Keyword__AdWords,
View_through_Conv___AdWords,
Ad_Name__Facebook_Ads,
Ad_Set_Name__Facebook_Ads,
Age__Facebook_Ads,
Attribution_Window__Facebook_Ads,
Buying_Type__Facebook_Ads,
Campaign_Name__Facebook_Ads,
Campaign_Objective__Facebook_Ads,
Conversion_Device__Facebook_Ads,
Device_Platform__Facebook_Ads,
DMA_Region__Facebook_Ads,
Impression_Device__Facebook_Ads,
Link__Facebook_Ads,
Placement__Facebook_Ads,
Gender__Facebook_Ads,
Platform__Facebook_Ads,
n_10_Second_Video_Views__Facebook_Ads,
n_3_Second_Video_Views__Facebook_Ads,
n_30_Second_Video_Views__Facebook_Ads,
Video_Plays__Facebook_Ads,
Video_thruplay__Facebook_Ads,
Video_Watches_at_100__Facebook_Ads,
Video_Watches_at_25__Facebook_Ads,
Video_Watches_at_50__Facebook_Ads,
Video_Watches_at_75__Facebook_Ads,
Video_Watches_at_95__Facebook_Ads,
Button_Clicks__Facebook_Ads,
Link_Clicks__Facebook_Ads,
Outbound_Clicks__Facebook_Ads,
Check_ins__Facebook_Ads,
Event_Responses__Facebook_Ads,
Page_Engagement__Facebook_Ads,
Page_Likes__Facebook_Ads,
Page_Mentions__Facebook_Ads,
Page_Tab_Views__Facebook_Ads,
Photo_Views__Facebook_Ads,
Post_Comments__Facebook_Ads,
Post_Engagement__Facebook_Ads,
Post_Reactions__Facebook_Ads,
Post_Shares__Facebook_Ads,
Actions__Facebook_Ads,
Amount_Spent__Facebook_Ads,
Clicks_all__Facebook_Ads,
Impressions__Facebook_Ads,
Thank_You_Form_mo_tid_Med___inbr___Facebook_Conversion__Facebook_Ads,
Thank_You_Form_V2_mo_tid_Med___inbr___Facebook_Conversion__Facebook_Ads,
n_100_In_View_Impressions__Facebook_Ads,
Custom_Events__Facebook_Ads,
Landing_Page_Views__Facebook_Ads,
Leads__Facebook_Ads,
Leads_Form__Facebook_Ads,
Ad_Group_ID__The_Trade,
Ad_Group_Name__The_Trade,
Advertiser_ID__The_Trade,
Advertiser_Name__The_Trade,
Advertiser_Total_Cost__The_Trade,
Partner_Cost__The_Trade_1,
Bids__The_Trade,
Campaign_ID__The_Trade,
Campaign_Name__The_Trade,
Clicks__The_Trade,
Impressions__The_Trade,
Partner_ID__The_Trade,
Site__The_Trade,
City__The_Trade,
Country__The_Trade,
Metro__The_Trade,
Region__The_Trade,
Player_25_Complete__The_Trade,
Player_50_Complete__The_Trade,
Player_75_Complete__The_Trade,
Player_Close__The_Trade,
Player_Collapse__The_Trade,
Player_Completed_Views__The_Trade,
Player_Engaged_Views__The_Trade,
Player_Error__The_Trade,
Player_Expansion__The_Trade,
Player_Full_Screen__The_Trade,
Player_Invitation_Accept__The_Trade,
Player_Mute__The_Trade,
Player_Pause__The_Trade,
Player_Resume__The_Trade,
Player_Rewind__The_Trade,
Player_Skip__The_Trade,
Player_Starts__The_Trade,
Player_Unmute__The_Trade,
Player_Views__The_Trade,
Video_Was_Trackable__The_Trade,
Video_Was_Viewable__The_Trade,
n_01___Click_Conversion__The_Trade,
n_02___Click_Conversion__The_Trade,
n_03___Click_Conversion__The_Trade,
n_04___Click_Conversion__The_Trade,
n_05___Click_Conversion__The_Trade,
n_06___Click_Conversion__The_Trade,
n_01___Time_Weighted_Decay_Conversion__The_Trade,
n_02___Time_Weighted_Decay_Conversion__The_Trade,
n_03___Time_Weighted_Decay_Conversion__The_Trade,
n_04___Time_Weighted_Decay_Conversion__The_Trade,
n_05___Time_Weighted_Decay_Conversion__The_Trade,
n_06___Time_Weighted_Decay_Conversion__The_Trade,
n_01___View_Through_Conversion__The_Trade,
n_02___View_Through_Conversion__The_Trade,
n_03___View_Through_Conversion__The_Trade,
n_04___View_Through_Conversion__The_Trade,
n_05___View_Through_Conversion__The_Trade,
n_06___View_Through_Conversion__The_Trade,
n_01___Conversion_Touch__The_Trade,
n_02___Conversion_Touch__The_Trade,
n_03___Conversion_Touch__The_Trade,
n_04___Conversion_Touch__The_Trade,
n_05___Conversion_Touch__The_Trade,
n_06___Conversion_Touch__The_Trade
FROM`inbr.AX_Trade.AX_Trade
https://www.odoo.com/forum/help-1/question/12-0-enable-features-in-the-res-config-settings-149566
I have created my setting data file as the followings mentioned by Alexander inside the page above:
res_config_data.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="my_config_settings" model="res.config.settings">
<field name="company_id" ref="base.main_company"/>
<field name="group_multi_currency" eval="True"/>
<field name="group_product_variant" eval="True"/>
<field name="group_stock_multi_warehouses" eval="True"/>
<field name="group_stock_multi_locations" eval="True"/>
<!-- Delivery Packages -->
<field name="group_stock_tracking_lot" eval="True" />
<field name="module_stock_picking_batch" eval="True" />
<!-- Display Lots & Serial Numbers: Lots & Serial numbers will appear on the delivery slip -->
<field name="group_lot_on_delivery_slip" eval="True" />
<!-- Multi-Step Routes: Use your own routes and putaway strategies -->
<field name="group_stock_adv_location" eval="True" />
<field name="po_order_approval" eval="True" />
<!-- Quantities billed by vendors -->
<field name="default_purchase_method">purchase</field>
<field name="multi_sales_price" eval="True" />
<!-- Multiple prices per product -->
<field name="multi_sales_price_method">percentage</field>
<field name="group_analytic_tags" eval="True" />
<field name="group_analytic_accounting" eval="True" />
<!-- Set specific billing and shipping addresses -->
<field name="group_sale_delivery_address" eval="True" />
<!-- Consignment -->
<field name="group_stock_tracking_owner" eval="True" />
<!-- Prepayment -->
<field name="prepayment_account_id" ref="my_chart_of_account.my_account_prepayments" />
<!-- Multi-company-->
<field name="group_multi_company" eval="False" />
</record>
<function model="res.config.settings" name="execute">
<value model="res.config.settings"
search="[('id', '=', ref('my_config_settings'))]"/>
</function>
</odoo>
__manifest__.py
'data': [
'data/res_config_data.xml',
],
It works if I apply it once only. But when I try to reinstall this setting module, it will not work.
It somehow fails to recognize what fields are the supported.
2020-06-11 02:26:48,117 52288 WARNING odoo_dev odoo.models: res.config.settings.create() with unknown fields: company_id, default_purchase_method, group_analytic_accounting, group_analytic_tags, group_lot_on_delivery_slip, group_multi_company, group_multi_currency, group_product_variant, group_sale_delivery_address, group_stock_adv_location, group_stock_multi_locations, group_stock_multi_warehouses, group_stock_tracking_lot, group_stock_tracking_owner, module_stock_picking_batch, multi_sales_price, multi_sales_price_method, po_order_approval, prepayment_account_id
Odoo discarded these unrecognized fields and insert the plain object into DB
2020-06-11 02:26:48,118 52288 ERROR odoo_dev odoo.sql_db: bad query: b'INSERT INTO "res_config_settings" ("id", "create_uid", "create_date", "write_uid", "write_date") VALUES (nextval(\'res_config_settings_id_seq\'), 1, (now() at time zone \'UTC\'), 1, (now() at time zone \'UTC\')) RETURNING id'
ERROR: null value in column "company_id" violates not-null constraint
DETAIL: Failing row contains (10, 1, 2020-06-11 02:26:47.302998, 1, 2020-06-11 02:26:47.302998, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null).
psycopg2.IntegrityError: null value in column "company_id" violates not-null constraint
DETAIL: Failing row contains (10, 1, 2020-06-11 02:26:47.302998, 1, 2020-06-11 02:26:47.302998, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null).
When I installed this setting module with a brand new Odoo database, and I go to general setting page, I can see the settings are installed. But when I check res.config.settings and ir.config_parameter tables, I don't see any settings record stored. I want to understand how this setting data file being proceeded and stored in where.
Ok although I still have no idea how settings being saved by Odoo. I managed to fix the update setting error.
The reason why it states res.config.settings.create() with unknown fields is because I was trying to update setting that are belongs to different module. For example group_multi_company is under base_setup. However in my setting module I have not listed base_setup as the dependencies.
After putting all modules for those settings I was trying to set, I can update settings properly. Yes if you do not add these dependencies it is still installable but for the first time only, yet you won't be able to update data later on. So always list all related dependent modules.
# -*- coding: utf-8 -*-
{
'name': "My Odoo Settings",
'description': "My configuration for setup",
'version': '12.0.2',
'author': "Wow Ltd.",
'website': "https://github.com/o.o/odoo-addons",
'summary': "My configuration for setup",
# Here, originally I have set with [] only.
# With these I can now update settings successfully
'depends': ['base_setup', 'sale', 'account', 'purchase', 'stock', 'stock_account', 'sale_management'],
'data': [
'data/settings.xml',
],
'installable': True,
}