Skip to content
Snippets Groups Projects
Commit ddcf3b32 authored by Johannes Hörmann's avatar Johannes Hörmann
Browse files

Activity mit Objectrelation

parent d5ac2470
No related merge requests found
......@@ -218,25 +218,6 @@
<element>PROCESS</element>
</onValueChangeTypes>
</entityField>
<entityOutgoingField>
<name>ActivityObjectRelation_dfo</name>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>ObjectRelation_entity</entityName>
<fieldName>ObjectRelationById_dfi</fieldName>
</dependency>
<children>
<entityParameter>
<name>ObjectRelatonId_param</name>
<code>%aditoprj%/entity/Activity_entity/entityfields/activityobjectrelation_dfo/children/objectrelatonid_param/code.js</code>
<triggerRecalculation v="true" />
</entityParameter>
</children>
</entityOutgoingField>
<entityField>
<name>AB_OBJECTRELATION_AB_OBJECTRELATIONID</name>
</entityField>
<entityIncomingField>
<name>ActivityById_dfi</name>
<fieldType>DEPENDENCY_IN</fieldType>
......@@ -265,39 +246,23 @@
<mandatory v="false" />
<description>PARAMETER</description>
</entityParameter>
<entityField>
<name>AB_OBJECTRELATION_OBJECT2_TYPE</name>
<title>Object type</title>
</entityField>
<entityField>
<name>AB_OBJECTRELATION_OBJECT2_ROWID</name>
<title>Object</title>
</entityField>
</entityFields>
<recordContainers>
<dbRecordContainer>
<name>db</name>
<alias>Data_alias</alias>
<fromClauseProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
<conditionProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
<orderClauseProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
<onDBInsert>%aditoprj%/entity/Activity_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
<onDBDelete>%aditoprj%/entity/Activity_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
<linkInformation>
<linkInformation>
<name>f28ac44d-9586-4d5d-881a-d7a850fb85e7</name>
<name>4d4e82f5-fd0d-48e0-805a-c713d73dfae0</name>
<tableName>ACTIVITY</tableName>
<primaryKey>ACTIVITYID</primaryKey>
<isUIDTable v="true" />
<readonly v="false" />
</linkInformation>
<linkInformation>
<name>b9f755e6-c68e-4562-a602-4d45101c2b0c</name>
<tableName>AB_OBJECTRELATION</tableName>
<primaryKey>AB_OBJECTRELATIONID</primaryKey>
<isUIDTable v="false" />
<readonly v="true" />
</linkInformation>
</linkInformation>
<recordFieldMappings>
<dbRecordFieldMapping>
......@@ -332,18 +297,6 @@
<name>CATEGORY.value</name>
<recordfield>ACTIVITY.CATEGORY</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>AB_OBJECTRELATION_AB_OBJECTRELATIONID.value</name>
<recordfield>AB_OBJECTRELATION.AB_OBJECTRELATIONID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>AB_OBJECTRELATION_OBJECT2_ROWID.value</name>
<recordfield>AB_OBJECTRELATION.OBJECT2_ROWID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>AB_OBJECTRELATION_OBJECT2_TYPE.value</name>
<recordfield>AB_OBJECTRELATION.OBJECT2_TYPE</recordfield>
</dbRecordFieldMapping>
</recordFieldMappings>
</dbRecordContainer>
</recordContainers>
......
import("system.logging");
import("system.vars");
import("system.result");
logging.log("set " + vars.get("$field.AB_OBJECTRELATION_AB_OBJECTRELATIONID"))
result.string(vars.get("$field.AB_OBJECTRELATION_AB_OBJECTRELATIONID"));
\ No newline at end of file
......@@ -3,10 +3,18 @@ import("system.db");
import("system.result");
import("Sql_lib");
import("ObjectRelation_lib");
import("Context_lib");
var cond = new SqlCondition();
cond.andPrepareVars("AB_OBJECTRELATION.OBJECT2_ROWID", "$param.RowId_param");
var objectRelationCond = SqlCondition.begin()
.andPrepare("AB_OBJECTRELATION.OBJECT1_TYPE", ContextUtils.getCurrentContextId())
.and("AB_OBJECTRELATION.OBJECT1_ROWID = ACTIVITY.ACTIVITYID")
.andPrepareVars("AB_OBJECTRELATION.OBJECT2_TYPE" , "$param.ObjectId_param")
.andPrepareVars("AB_OBJECTRELATION.OBJECT2_ROWID" , "$param.RowId_param");
cond.and(db.translateStatement(objectRelationCond.buildSql("exists (select 1 from AB_OBJECTRELATION", "1=2", ")")));
cond.andPrepareVars("ACTIVITY.ACTIVITYID", "$param.ActivityId_param");
if(vars.exists("$param.OnlyInnate_param") && vars.get("$param.OnlyInnate_param"))
......
import("system.vars");
import("system.result");
import("system.db");
import("ObjectRelation_lib");
var objectId = (vars.exists("$param.ObjectId_param") ? vars.get("$param.ObjectId_param") : undefined);
result.string("ACTIVITY " + db.translateStatement(ObjectRelationUtils.getJoin("ACTIVITY.ACTIVITYID", objectId)));
\ No newline at end of file
......@@ -62,14 +62,6 @@
<name>ObjectRelationById_dfi</name>
<fieldType>DEPENDENCY_IN</fieldType>
<recordContainer>db</recordContainer>
<dependencies>
<entityDependency>
<name>59707c94-621c-427d-a465-2a08ae268bbb</name>
<entityName>Activity_entity</entityName>
<fieldName>ActivityObjectRelation_dfo</fieldName>
<isOutgoing v="false" />
</entityDependency>
</dependencies>
</entityIncomingField>
</entityFields>
<recordContainers>
......
......@@ -32,14 +32,6 @@
<name>b0673d1d-af3d-4daa-b6ec-511f18367e7f</name>
<entityField>INFO</entityField>
</entityFieldLink>
<entityFieldLink>
<name>d57cbf7c-f590-4166-a232-60a43affb9d0</name>
<entityField>AB_OBJECTRELATION_OBJECT2_TYPE</entityField>
</entityFieldLink>
<entityFieldLink>
<name>1347066e-16d1-47ba-92e9-8f4aa30326b2</name>
<entityField>AB_OBJECTRELATION_OBJECT2_ROWID</entityField>
</entityFieldLink>
</fields>
</genericViewTemplate>
<neonViewReference>
......
......@@ -20,6 +20,15 @@
<column name="USER_NEW" value="Admin"/>
<column name="DATE_NEW" valueDate="2018-08-03T12:02:52"/>
</insert>
<insert tableName="AB_OBJECTRELATION">
<column name="AB_OBJECTRELATIONID" value="83337967-5d58-4b17-88c2-2aeefa130c21"/>
<column name="OBJECT1_TYPE" value="Activity_context"/>
<column name="OBJECT1_ROWID" value="661a7b87-68ae-4d52-bc22-6bf96184e6fe"/>
<column name="OBJECT2_TYPE" value="Pers_context"/>
<column name="OBJECT2_ROWID" value="6be18a7e-e7fa-11e8-9f32-f2801f1b9fd1"/>
<column name="USER_NEW" value="Admin"/>
<column name="DATE_NEW" valueDate="2018-08-03T12:02:52"/>
</insert>
<insert tableName="ACTIVITY">
<column name="ACTIVITYID" value="9dda39bf-966c-4560-be03-5ddbbc1da84a"/>
<column name="SUBJECT" value="Webinar-Aufzeichnung"/>
......
......@@ -65,16 +65,6 @@
<column name="ADDRESS" value="Wilhelm-Straße"/>
<column name="DISTRICT" value="Oberbayern"/>
</insert>
<insert tableName="ACTIVITY">
<column name="ACTIVITYID" value="de410a35-bcab-407e-9d60-7a65f028159b"/>
<column name="USER_NEW" value="admin"/>
<column name="DATE_NEW" valueDate="2018-08-03T12:02:52"/>
<column name="SUBJECT" value="Produktpalette"/>
<column name="INFO" value="seit November neuer Einkäufer bei Schulz. Herr Traum wird unsere Spezifikation aber in jedem Fall auch 1997 festschreiben. Dennoch Vorsicht: Besuch"/>
<column name="CATEGORY" valueNumeric="2"/>
<column name="DIRECTION" value="i"/>
<column name="ENTRYDATE" valueDate="2018-08-03T12:41:22"/>
</insert>
<insert tableName="ACTIVITY">
<column name="ACTIVITYID" value="de110a33-bcab-407e-9d60-7a65f028159b"/>
<column name="USER_NEW" value="admin"/>
......@@ -134,12 +124,6 @@
<param value="de110a33-bcab-407e-9d60-7a65f028159b" />
</whereParams>
</delete>
<delete tableName="ACTIVITY">
<where>ACTIVITYID = ?</where>
<whereParams>
<param value="de410a35-bcab-407e-9d60-7a65f028159b" />
</whereParams>
</delete>
<delete tableName="ADDRESS">
<where>ADDRESSID = ?</where>
<whereParams>
......
......@@ -11,41 +11,4 @@ import("Sql_lib");
*/
function ObjectRelationUtils() {}
/**
* Returns a join as prepared sql for joining something with the Objectrelation table.
* (Note that the pObjectType2 comes before pObjectType1 because pObjectType1 is the default value most times. -> less needed undefined in method call -> cleaner code)
*
* @param {String} pDbRowIdField1 the DB-Field of the rowid to join with. Provide it as: "TABLENAME.COLNAME"<br>Be carefull! No SQL will be escaped. Do not pass strings which can be altered by an user! (SQL-injection)
* @param {String} [pObjectType2=undefined] the SECOND object type.
* @param {String} [pObjectType1=ContextUtils.getCurrentContextId()] The FIRST object type. if not provided the current context will be used
*
* @return {Array} prepared adito-sql statement ["SQL", [[param, type], [param, type], ...]
*
* @example
* var objectId = (vars.exists("$param.ObjectId_param") ? vars.get("$param.ObjectId_param") : undefined);<br>
* result.string("ACTIVITY " + db.translateStatement(ObjectRelationUtils.getJoin("ACTIVITY.ACTIVITYID", objectId)));
*/
ObjectRelationUtils.getJoin = function(pDbRowIdField1, pObjectType2, pObjectType1)
{
// use current context as first context, if not defined
if (pObjectType1 == undefined)
pObjectType1 = ContextUtils.getCurrentContextId();
var joinCondition = SqlCondition.begin().andPrepare("AB_OBJECTRELATION.OBJECT1_TYPE", pObjectType1);
if (pDbRowIdField1 != undefined && pDbRowIdField1)
{
joinCondition.and("AB_OBJECTRELATION.OBJECT1_ROWID = " + pDbRowIdField1);
}
else
{
throw new Error("ObjectRelationUtils.getRecordJoin: No pDbIdField1 given.")
}
if (pObjectType2 != undefined && pObjectType2)
{
joinCondition.andPrepare("AB_OBJECTRELATION.OBJECT2_TYPE", pObjectType2);
}
return joinCondition.buildSql(" join AB_OBJECTRELATION on " , "1=2", undefined, false);
}
// TODO
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment